From eb6e875fabdf4571174fc92144d65fc62bc1170a Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:13:44 +0100 Subject: [PATCH 1/7] Imrpove notebook config and notebooks in docs --- flixopt/config.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flixopt/config.py b/flixopt/config.py index 0280010d8..a29027d65 100644 --- a/flixopt/config.py +++ b/flixopt/config.py @@ -793,7 +793,7 @@ def notebook(cls) -> type[CONFIG]: - Sets plotly renderer to 'notebook' for inline display - Disables automatic plot.show() calls (notebooks display via _repr_html_) - Enables SUCCESS-level console logging - - Enables solver console output and main results logging + - Disables solver console output for cleaner notebook cells Examples: ```python @@ -818,9 +818,9 @@ def notebook(cls) -> type[CONFIG]: # Light logging - SUCCESS level without too much noise cls.Logging.enable_console('SUCCESS') - # Enable solver console output and main results logging - cls.Solving.log_to_console = True - cls.Solving.log_main_results = True + # Disable verbose solver output for cleaner notebook cells + cls.Solving.log_to_console = False + cls.Solving.log_main_results = False return cls From 8928fa1d73d1331818586b5a909bc225b202bc63 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 18 Dec 2025 08:22:05 +0100 Subject: [PATCH 2/7] Imrpove notebooks in docs --- .../03-investment-optimization.ipynb | 94 +++- .../04-operational-constraints.ipynb | 218 ++++---- docs/notebooks/05-multi-carrier-system.ipynb | 160 +++++- .../06a-time-varying-parameters.ipynb | 18 +- docs/notebooks/06b-piecewise-conversion.ipynb | 65 +-- docs/notebooks/06c-piecewise-effects.ipynb | 93 +--- docs/notebooks/07-scenarios-and-periods.ipynb | 43 +- docs/notebooks/08a-aggregation.ipynb | 30 +- docs/notebooks/08b-rolling-horizon.ipynb | 515 +++++------------- .../09-plotting-and-data-access.ipynb | 34 +- docs/notebooks/10-transmission.ipynb | 26 +- 11 files changed, 552 insertions(+), 744 deletions(-) diff --git a/docs/notebooks/03-investment-optimization.ipynb b/docs/notebooks/03-investment-optimization.ipynb index ff62fe037..a9369998f 100644 --- a/docs/notebooks/03-investment-optimization.ipynb +++ b/docs/notebooks/03-investment-optimization.ipynb @@ -171,7 +171,71 @@ "id": "10", "metadata": {}, "outputs": [], - "source": "flow_system = fx.FlowSystem(timesteps)\nflow_system.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nflow_system.add_elements(\n # === Buses ===\n fx.Bus('Heat', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n # === Effects ===\n fx.Effect('costs', '€', 'Total Costs', is_standard=True, is_objective=True),\n # === Gas Supply ===\n fx.Source(\n 'GasGrid',\n outputs=[fx.Flow('Gas', bus='Gas', size=500, effects_per_flow_hour=GAS_PRICE)],\n ),\n # === Gas Boiler (existing, fixed size) ===\n fx.linear_converters.Boiler(\n 'GasBoiler',\n thermal_efficiency=0.92,\n thermal_flow=fx.Flow('Heat', bus='Heat', size=200), # 200 kW existing\n fuel_flow=fx.Flow('Gas', bus='Gas'),\n ),\n # === Solar Collectors (size to be optimized) ===\n fx.Source(\n 'SolarCollectors',\n outputs=[\n fx.Flow(\n 'Heat',\n bus='Heat',\n # Investment optimization: find optimal size between 0-500 kW\n size=fx.InvestParameters(\n minimum_size=0,\n maximum_size=500,\n effects_of_investment_per_size={'costs': SOLAR_COST_WEEKLY},\n ),\n # Solar output depends on radiation profile\n fixed_relative_profile=solar_profile,\n )\n ],\n ),\n # === Buffer Tank (size to be optimized) ===\n fx.Storage(\n 'BufferTank',\n # Investment optimization: find optimal capacity between 0-2000 kWh\n capacity_in_flow_hours=fx.InvestParameters(\n minimum_size=0,\n maximum_size=2000,\n effects_of_investment_per_size={'costs': TANK_COST_WEEKLY},\n ),\n initial_charge_state=0,\n eta_charge=0.95,\n eta_discharge=0.95,\n relative_loss_per_hour=0.01, # 1% loss per hour\n charging=fx.Flow('Charge', bus='Heat', size=200),\n discharging=fx.Flow('Discharge', bus='Heat', size=200),\n ),\n # === Pool Heat Demand ===\n fx.Sink(\n 'Pool',\n inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=pool_demand)],\n ),\n)" + "source": [ + "flow_system = fx.FlowSystem(timesteps)\n", + "flow_system.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "flow_system.add_elements(\n", + " # === Buses ===\n", + " fx.Bus('Heat', carrier='heat'),\n", + " fx.Bus('Gas', carrier='gas'),\n", + " # === Effects ===\n", + " fx.Effect('costs', '€', 'Total Costs', is_standard=True, is_objective=True),\n", + " # === Gas Supply ===\n", + " fx.Source(\n", + " 'GasGrid',\n", + " outputs=[fx.Flow('Gas', bus='Gas', size=500, effects_per_flow_hour=GAS_PRICE)],\n", + " ),\n", + " # === Gas Boiler (existing, fixed size) ===\n", + " fx.linear_converters.Boiler(\n", + " 'GasBoiler',\n", + " thermal_efficiency=0.92,\n", + " thermal_flow=fx.Flow('Heat', bus='Heat', size=200), # 200 kW existing\n", + " fuel_flow=fx.Flow('Gas', bus='Gas'),\n", + " ),\n", + " # === Solar Collectors (size to be optimized) ===\n", + " fx.Source(\n", + " 'SolarCollectors',\n", + " outputs=[\n", + " fx.Flow(\n", + " 'Heat',\n", + " bus='Heat',\n", + " # Investment optimization: find optimal size between 0-500 kW\n", + " size=fx.InvestParameters(\n", + " minimum_size=0,\n", + " maximum_size=500,\n", + " effects_of_investment_per_size={'costs': SOLAR_COST_WEEKLY},\n", + " ),\n", + " # Solar output depends on radiation profile\n", + " fixed_relative_profile=solar_profile,\n", + " )\n", + " ],\n", + " ),\n", + " # === Buffer Tank (size to be optimized) ===\n", + " fx.Storage(\n", + " 'BufferTank',\n", + " # Investment optimization: find optimal capacity between 0-2000 kWh\n", + " capacity_in_flow_hours=fx.InvestParameters(\n", + " minimum_size=0,\n", + " maximum_size=2000,\n", + " effects_of_investment_per_size={'costs': TANK_COST_WEEKLY},\n", + " ),\n", + " initial_charge_state=0,\n", + " eta_charge=0.95,\n", + " eta_discharge=0.95,\n", + " relative_loss_per_hour=0.01, # 1% loss per hour\n", + " charging=fx.Flow('Charge', bus='Heat', size=200),\n", + " discharging=fx.Flow('Discharge', bus='Heat', size=200),\n", + " ),\n", + " # === Pool Heat Demand ===\n", + " fx.Sink(\n", + " 'Pool',\n", + " inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=pool_demand)],\n", + " ),\n", + ")" + ] }, { "cell_type": "markdown", @@ -207,7 +271,14 @@ "id": "14", "metadata": {}, "outputs": [], - "source": "solar_size = flow_system.statistics.sizes['SolarCollectors(Heat)'].item()\ntank_size = flow_system.statistics.sizes['BufferTank'].item()\n\nprint('=== Optimal Investment Decisions ===')\nprint(f'Solar collectors: {solar_size:.1f} kW')\nprint(f'Buffer tank: {tank_size:.1f} kWh')\nprint(f'Tank-to-solar ratio: {tank_size / solar_size:.1f} kWh/kW' if solar_size > 0 else 'N/A')" + "source": [ + "solar_size = flow_system.statistics.sizes['SolarCollectors(Heat)'].item()\n", + "tank_size = flow_system.statistics.sizes['BufferTank'].item()\n", + "\n", + "print(\n", + " f'Optimal sizes: Solar {solar_size:.0f} kW, Tank {tank_size:.0f} kWh (ratio: {tank_size / solar_size:.1f} kWh/kW)'\n", + ")" + ] }, { "cell_type": "markdown", @@ -249,12 +320,9 @@ "tank_invest = tank_size * TANK_COST_WEEKLY\n", "gas_costs = total_costs - solar_invest - tank_invest\n", "\n", - "print('=== Weekly Cost Breakdown ===')\n", - "print(f'Solar investment: {solar_invest:.2f} € ({solar_invest / total_costs * 100:.1f}%)')\n", - "print(f'Tank investment: {tank_invest:.2f} € ({tank_invest / total_costs * 100:.1f}%)')\n", - "print(f'Gas operating: {gas_costs:.2f} € ({gas_costs / total_costs * 100:.1f}%)')\n", - "print('─────────────────────────────')\n", - "print(f'Total: {total_costs:.2f} €')" + "print(\n", + " f'Weekly costs: Solar {solar_invest:.1f}€ ({solar_invest / total_costs * 100:.0f}%) + Tank {tank_invest:.1f}€ ({tank_invest / total_costs * 100:.0f}%) + Gas {gas_costs:.1f}€ ({gas_costs / total_costs * 100:.0f}%) = {total_costs:.1f}€'\n", + ")" ] }, { @@ -317,13 +385,9 @@ "gas_only_cost = total_demand / 0.92 * GAS_PRICE # All heat from gas boiler\n", "\n", "savings = gas_only_cost - total_costs\n", - "savings_pct = savings / gas_only_cost * 100\n", - "\n", - "print('=== Comparison with Gas-Only ===')\n", - "print(f'Gas-only cost: {gas_only_cost:.2f} €/week')\n", - "print(f'With solar: {total_costs:.2f} €/week')\n", - "print(f'Savings: {savings:.2f} €/week ({savings_pct:.1f}%)')\n", - "print(f'Annual savings: {savings * 52:.0f} €/year')" + "print(\n", + " f'Solar saves {savings:.1f}€/week ({savings / gas_only_cost * 100:.0f}%) vs gas-only ({gas_only_cost:.1f}€) → {savings * 52:.0f}€/year'\n", + ")" ] }, { diff --git a/docs/notebooks/04-operational-constraints.ipynb b/docs/notebooks/04-operational-constraints.ipynb index 9090b172b..aeb4edb57 100644 --- a/docs/notebooks/04-operational-constraints.ipynb +++ b/docs/notebooks/04-operational-constraints.ipynb @@ -1,8 +1,9 @@ { "cells": [ { - "metadata": {}, "cell_type": "markdown", + "id": "217ee38bd32426e5", + "metadata": {}, "source": [ "# Constraints\n", "\n", @@ -14,20 +15,20 @@ "- **Startup costs**: Penalties for turning equipment on\n", "- **Minimum uptime/downtime**: Prevent rapid cycling\n", "- **Minimum load**: Equipment can't run below a certain output" - ], - "id": "217ee38bd32426e5" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "## Setup", - "id": "73f6d18d567c6329" + "id": "73f6d18d567c6329", + "metadata": {}, + "source": "## Setup" }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, + "id": "e8a50bb05c1400f2", + "metadata": {}, + "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", @@ -37,12 +38,12 @@ "import flixopt as fx\n", "\n", "fx.CONFIG.notebook()" - ], - "id": "e8a50bb05c1400f2" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "54d9decc2ccf8235", + "metadata": {}, "source": [ "## System Description\n", "\n", @@ -53,20 +54,20 @@ "- **Steam demand**: Varies with production schedule (high during shifts, low overnight)\n", "\n", "The main boiler is more efficient but has operational constraints. The backup is less efficient but flexible." - ], - "id": "54d9decc2ccf8235" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "## Define Time Horizon and Demand", - "id": "65694ad43e7a1f42" + "id": "65694ad43e7a1f42", + "metadata": {}, + "source": "## Define Time Horizon and Demand" }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, + "id": "8c606ee48c294628", + "metadata": {}, + "outputs": [], "source": [ "# 3 days, hourly resolution\n", "timesteps = pd.date_range('2024-03-11', periods=72, freq='h')\n", @@ -94,28 +95,30 @@ "\n", "print(f'Peak demand: {steam_demand.max():.0f} kW')\n", "print(f'Min demand: {steam_demand.min():.0f} kW')" - ], - "id": "8c606ee48c294628" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "px.line(x=timesteps, y=steam_demand, title='Factory Steam Demand', labels={'x': 'Time', 'y': 'kW'})", - "id": "fd4f46fa717b1572" + "id": "fd4f46fa717b1572", + "metadata": {}, + "outputs": [], + "source": [ + "px.line(x=timesteps, y=steam_demand, title='Factory Steam Demand', labels={'x': 'Time', 'y': 'kW'})" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "## Build System with Operational Constraints", - "id": "2d823131e625dcfa" + "id": "2d823131e625dcfa", + "metadata": {}, + "source": "## Build System with Operational Constraints" }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, + "id": "736dfa9a935f6c7e", + "metadata": {}, + "outputs": [], "source": [ "flow_system = fx.FlowSystem(timesteps)\n", "\n", @@ -168,46 +171,50 @@ " inputs=[fx.Flow('Steam', bus='Steam', size=1, fixed_relative_profile=steam_demand)],\n", " ),\n", ")" - ], - "id": "736dfa9a935f6c7e" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "## Run Optimization", - "id": "70ae8aaa82997d51" + "id": "70ae8aaa82997d51", + "metadata": {}, + "source": "## Run Optimization" }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "flow_system.optimize(fx.solvers.HighsSolver(mip_gap=0.01));", - "id": "76f27e3afe64f8c5" + "id": "76f27e3afe64f8c5", + "metadata": {}, + "outputs": [], + "source": [ + "flow_system.optimize(fx.solvers.HighsSolver(mip_gap=0.01));" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "c42e2778fd0a8ca", + "metadata": {}, "source": [ "## Analyze Results\n", "\n", "### Steam Balance\n", "\n", "See how the two boilers share the load:" - ], - "id": "c42e2778fd0a8ca" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "flow_system.statistics.plot.balance('Steam')", - "id": "9da80bc8faca05cd" + "id": "9da80bc8faca05cd", + "metadata": {}, + "outputs": [], + "source": [ + "flow_system.statistics.plot.balance('Steam')" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "c885d25675d71371", + "metadata": {}, "source": [ "### Main Boiler Operation\n", "\n", @@ -215,32 +222,34 @@ "- Runs continuously during production (respecting min uptime)\n", "- Stays above minimum load (30%)\n", "- Shuts down during low-demand periods" - ], - "id": "c885d25675d71371" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "flow_system.statistics.plot.heatmap('MainBoiler(Steam)')", - "id": "5a549b8b60f32745" + "id": "5a549b8b60f32745", + "metadata": {}, + "outputs": [], + "source": [ + "flow_system.statistics.plot.heatmap('MainBoiler(Steam)')" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "66816d462d2f2654", + "metadata": {}, "source": [ "### On/Off Status\n", "\n", "Track the boiler's operational status:" - ], - "id": "66816d462d2f2654" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, + "id": "41801a37f07aa265", + "metadata": {}, + "outputs": [], "source": [ "# Merge solution DataArrays directly - xarray aligns coordinates automatically\n", "status_ds = xr.Dataset(\n", @@ -255,75 +264,77 @@ "fig.update_yaxes(matches=None, showticklabels=True)\n", "fig.for_each_annotation(lambda a: a.update(text=a.text.split('=')[-1]))\n", "fig" - ], - "id": "41801a37f07aa265" + ] }, { - "metadata": {}, "cell_type": "markdown", - "source": "### Startup Count and Costs", - "id": "7ca893f03606362" + "id": "7ca893f03606362", + "metadata": {}, + "source": "### Startup Count and Costs" }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, + "id": "a95273c9775e1fd9", + "metadata": {}, + "outputs": [], "source": [ "total_startups = int(flow_system.solution['MainBoiler|startup'].sum().item())\n", "total_costs = flow_system.solution['costs'].item()\n", "startup_costs = total_startups * 50\n", "gas_costs = total_costs - startup_costs\n", "\n", - "print('=== Cost Breakdown ===')\n", - "print(f'Number of startups: {total_startups}')\n", - "print(f'Startup costs: {startup_costs:.0f} €')\n", - "print(f'Gas costs: {gas_costs:.2f} €')\n", - "print(f'Total costs: {total_costs:.2f} €')" - ], - "id": "a95273c9775e1fd9" + "print(\n", + " f'{total_startups} startups × 50€ = {startup_costs:.0f}€ startup + {gas_costs:.0f}€ gas = {total_costs:.0f}€ total'\n", + ")" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "e29cf8ae428387bd", + "metadata": {}, "source": [ "### Duration Curves\n", "\n", "See how often each boiler operates at different load levels:" - ], - "id": "e29cf8ae428387bd" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "flow_system.statistics.plot.duration_curve('MainBoiler(Steam)')", - "id": "14e906ea8912de10" + "id": "14e906ea8912de10", + "metadata": {}, + "outputs": [], + "source": [ + "flow_system.statistics.plot.duration_curve('MainBoiler(Steam)')" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "flow_system.statistics.plot.duration_curve('BackupBoiler(Steam)')", - "id": "15d6068612a73f84" + "id": "15d6068612a73f84", + "metadata": {}, + "outputs": [], + "source": [ + "flow_system.statistics.plot.duration_curve('BackupBoiler(Steam)')" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "8354cd68733d5086", + "metadata": {}, "source": [ "## Compare: Without Operational Constraints\n", "\n", "What if the main boiler had no startup costs or minimum uptime?" - ], - "id": "8354cd68733d5086" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, + "id": "8769dbda34dd4ccf", + "metadata": {}, + "outputs": [], "source": [ "# Build unconstrained system\n", "fs_unconstrained = fx.FlowSystem(timesteps)\n", @@ -356,36 +367,34 @@ "fs_unconstrained.optimize(fx.solvers.HighsSolver())\n", "unconstrained_costs = fs_unconstrained.solution['costs'].item()\n", "\n", - "print('=== Comparison ===')\n", - "print(f'With constraints: {total_costs:.2f} €')\n", - "print(f'Without constraints: {unconstrained_costs:.2f} €')\n", - "print(\n", - " f'Constraint cost: {total_costs - unconstrained_costs:.2f} € ({(total_costs - unconstrained_costs) / unconstrained_costs * 100:.1f}%)'\n", - ")" - ], - "id": "8769dbda34dd4ccf" + "constraint_overhead = (total_costs - unconstrained_costs) / unconstrained_costs * 100\n", + "print(f'Constraints add {constraint_overhead:.1f}% cost: {unconstrained_costs:.0f}€ → {total_costs:.0f}€')" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "64ddc254af867367", + "metadata": {}, "source": [ "### Energy Flow Sankey\n", "\n", "A Sankey diagram visualizes the total energy flows through the system:" - ], - "id": "64ddc254af867367" + ] }, { - "metadata": {}, "cell_type": "code", - "outputs": [], "execution_count": null, - "source": "flow_system.statistics.plot.sankey.flows()", - "id": "f2742f4b0a7c5323" + "id": "f2742f4b0a7c5323", + "metadata": {}, + "outputs": [], + "source": [ + "flow_system.statistics.plot.sankey.flows()" + ] }, { - "metadata": {}, "cell_type": "markdown", + "id": "2f9951587227304f", + "metadata": {}, "source": [ "## Key Concepts\n", "\n", @@ -433,8 +442,7 @@ "\n", "- **[05-multi-carrier-system](05-multi-carrier-system.ipynb)**: Model CHP with electricity and heat\n", "- **[06a-time-varying-parameters](06a-time-varying-parameters.ipynb)**: Variable efficiency based on external conditions" - ], - "id": "2f9951587227304f" + ] } ], "metadata": {}, diff --git a/docs/notebooks/05-multi-carrier-system.ipynb b/docs/notebooks/05-multi-carrier-system.ipynb index 76de7e69a..f09578c17 100644 --- a/docs/notebooks/05-multi-carrier-system.ipynb +++ b/docs/notebooks/05-multi-carrier-system.ipynb @@ -169,7 +169,93 @@ "id": "9", "metadata": {}, "outputs": [], - "source": "flow_system = fx.FlowSystem(timesteps)\nflow_system.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nflow_system.add_elements(\n # === Buses with carriers for visual distinction ===\n fx.Bus('Electricity', carrier='electricity'),\n fx.Bus('Heat', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n # === Effects ===\n fx.Effect('costs', '€', 'Total Costs', is_standard=True, is_objective=True),\n fx.Effect('CO2', 'kg', 'CO2 Emissions'), # Track emissions too\n # === Gas Supply ===\n fx.Source(\n 'GasGrid',\n outputs=[\n fx.Flow(\n 'Gas',\n bus='Gas',\n size=1000,\n effects_per_flow_hour={'costs': gas_price, 'CO2': 0.2}, # Gas: 0.2 kg CO2/kWh\n )\n ],\n ),\n # === Electricity Grid (buy) ===\n fx.Source(\n 'GridBuy',\n outputs=[\n fx.Flow(\n 'Electricity',\n bus='Electricity',\n size=500,\n effects_per_flow_hour={'costs': elec_buy_price, 'CO2': 0.4}, # Grid: 0.4 kg CO2/kWh\n )\n ],\n ),\n # === Electricity Grid (sell) - negative cost = revenue ===\n fx.Sink(\n 'GridSell',\n inputs=[\n fx.Flow(\n 'Electricity',\n bus='Electricity',\n size=200,\n effects_per_flow_hour={'costs': -elec_sell_price}, # Negative = income\n )\n ],\n ),\n # === CHP Unit (Combined Heat and Power) ===\n fx.linear_converters.CHP(\n 'CHP',\n electrical_efficiency=0.40, # 40% to electricity\n thermal_efficiency=0.50, # 50% to heat (total: 90%)\n status_parameters=fx.StatusParameters(\n effects_per_startup={'costs': 30},\n min_uptime=3,\n ),\n electrical_flow=fx.Flow('P_el', bus='Electricity', size=200),\n thermal_flow=fx.Flow('Q_th', bus='Heat', size=250),\n fuel_flow=fx.Flow(\n 'Q_fuel',\n bus='Gas',\n size=500,\n relative_minimum=0.4, # Min 40% load\n ),\n ),\n # === Gas Boiler (heat only) ===\n fx.linear_converters.Boiler(\n 'Boiler',\n thermal_efficiency=0.92,\n thermal_flow=fx.Flow('Q_th', bus='Heat', size=400),\n fuel_flow=fx.Flow('Q_fuel', bus='Gas'),\n ),\n # === Hospital Loads ===\n fx.Sink(\n 'HospitalElec',\n inputs=[fx.Flow('Load', bus='Electricity', size=1, fixed_relative_profile=electricity_demand)],\n ),\n fx.Sink(\n 'HospitalHeat',\n inputs=[fx.Flow('Load', bus='Heat', size=1, fixed_relative_profile=heat_demand)],\n ),\n)" + "source": [ + "flow_system = fx.FlowSystem(timesteps)\n", + "flow_system.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('electricity', '#f1c40f', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "flow_system.add_elements(\n", + " # === Buses with carriers for visual distinction ===\n", + " fx.Bus('Electricity', carrier='electricity'),\n", + " fx.Bus('Heat', carrier='heat'),\n", + " fx.Bus('Gas', carrier='gas'),\n", + " # === Effects ===\n", + " fx.Effect('costs', '€', 'Total Costs', is_standard=True, is_objective=True),\n", + " fx.Effect('CO2', 'kg', 'CO2 Emissions'), # Track emissions too\n", + " # === Gas Supply ===\n", + " fx.Source(\n", + " 'GasGrid',\n", + " outputs=[\n", + " fx.Flow(\n", + " 'Gas',\n", + " bus='Gas',\n", + " size=1000,\n", + " effects_per_flow_hour={'costs': gas_price, 'CO2': 0.2}, # Gas: 0.2 kg CO2/kWh\n", + " )\n", + " ],\n", + " ),\n", + " # === Electricity Grid (buy) ===\n", + " fx.Source(\n", + " 'GridBuy',\n", + " outputs=[\n", + " fx.Flow(\n", + " 'Electricity',\n", + " bus='Electricity',\n", + " size=500,\n", + " effects_per_flow_hour={'costs': elec_buy_price, 'CO2': 0.4}, # Grid: 0.4 kg CO2/kWh\n", + " )\n", + " ],\n", + " ),\n", + " # === Electricity Grid (sell) - negative cost = revenue ===\n", + " fx.Sink(\n", + " 'GridSell',\n", + " inputs=[\n", + " fx.Flow(\n", + " 'Electricity',\n", + " bus='Electricity',\n", + " size=200,\n", + " effects_per_flow_hour={'costs': -elec_sell_price}, # Negative = income\n", + " )\n", + " ],\n", + " ),\n", + " # === CHP Unit (Combined Heat and Power) ===\n", + " fx.linear_converters.CHP(\n", + " 'CHP',\n", + " electrical_efficiency=0.40, # 40% to electricity\n", + " thermal_efficiency=0.50, # 50% to heat (total: 90%)\n", + " status_parameters=fx.StatusParameters(\n", + " effects_per_startup={'costs': 30},\n", + " min_uptime=3,\n", + " ),\n", + " electrical_flow=fx.Flow('P_el', bus='Electricity', size=200),\n", + " thermal_flow=fx.Flow('Q_th', bus='Heat', size=250),\n", + " fuel_flow=fx.Flow(\n", + " 'Q_fuel',\n", + " bus='Gas',\n", + " size=500,\n", + " relative_minimum=0.4, # Min 40% load\n", + " ),\n", + " ),\n", + " # === Gas Boiler (heat only) ===\n", + " fx.linear_converters.Boiler(\n", + " 'Boiler',\n", + " thermal_efficiency=0.92,\n", + " thermal_flow=fx.Flow('Q_th', bus='Heat', size=400),\n", + " fuel_flow=fx.Flow('Q_fuel', bus='Gas'),\n", + " ),\n", + " # === Hospital Loads ===\n", + " fx.Sink(\n", + " 'HospitalElec',\n", + " inputs=[fx.Flow('Load', bus='Electricity', size=1, fixed_relative_profile=electricity_demand)],\n", + " ),\n", + " fx.Sink(\n", + " 'HospitalHeat',\n", + " inputs=[fx.Flow('Load', bus='Heat', size=1, fixed_relative_profile=heat_demand)],\n", + " ),\n", + ")" + ] }, { "cell_type": "markdown", @@ -292,21 +378,12 @@ "total_elec = electricity_demand.sum()\n", "total_heat = heat_demand.sum()\n", "\n", - "print('=== Energy Summary ===')\n", - "print(f'Total electricity demand: {total_elec:.0f} kWh')\n", - "print(f' - From CHP: {chp_elec:.0f} kWh ({chp_elec / total_elec * 100:.1f}%)')\n", - "print(f' - From Grid: {grid_buy:.0f} kWh ({grid_buy / total_elec * 100:.1f}%)')\n", - "print(f' - Sold to Grid: {grid_sell:.0f} kWh')\n", - "print()\n", - "print(f'Total heat demand: {total_heat:.0f} kWh')\n", - "print(f' - From CHP: {chp_heat:.0f} kWh ({chp_heat / total_heat * 100:.1f}%)')\n", - "print(f' - From Boiler: {boiler_heat:.0f} kWh ({boiler_heat / total_heat * 100:.1f}%)')\n", - "print()\n", - "print('=== Costs & Emissions ===')\n", - "print(f'Total costs: {total_costs:.2f} €')\n", - "print(f'Total CO2: {total_co2:.0f} kg')\n", - "print(f'Specific costs: {total_costs / (total_elec + total_heat) * 100:.2f} ct/kWh')\n", - "print(f'Specific CO2: {total_co2 / (total_elec + total_heat) * 1000:.1f} g/kWh')" + "# Display as compact summary\n", + "print(\n", + " f'Electricity: {chp_elec:.0f} kWh CHP ({chp_elec / total_elec * 100:.0f}%) + {grid_buy:.0f} kWh grid, {grid_sell:.0f} kWh sold'\n", + ")\n", + "print(f'Heat: {chp_heat:.0f} kWh CHP ({chp_heat / total_heat * 100:.0f}%) + {boiler_heat:.0f} kWh boiler')\n", + "print(f'Costs: {total_costs:.2f} € | CO2: {total_co2:.0f} kg')" ] }, { @@ -325,7 +402,56 @@ "id": "23", "metadata": {}, "outputs": [], - "source": "# Build system without CHP\nfs_no_chp = fx.FlowSystem(timesteps)\nfs_no_chp.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_no_chp.add_elements(\n fx.Bus('Electricity', carrier='electricity'),\n fx.Bus('Heat', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n fx.Effect('costs', '€', 'Total Costs', is_standard=True, is_objective=True),\n fx.Effect('CO2', 'kg', 'CO2 Emissions'),\n fx.Source(\n 'GasGrid',\n outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour={'costs': gas_price, 'CO2': 0.2})],\n ),\n fx.Source(\n 'GridBuy',\n outputs=[\n fx.Flow(\n 'Electricity', bus='Electricity', size=500, effects_per_flow_hour={'costs': elec_buy_price, 'CO2': 0.4}\n )\n ],\n ),\n # Only boiler for heat\n fx.linear_converters.Boiler(\n 'Boiler',\n thermal_efficiency=0.92,\n thermal_flow=fx.Flow('Q_th', bus='Heat', size=500),\n fuel_flow=fx.Flow('Q_fuel', bus='Gas'),\n ),\n fx.Sink(\n 'HospitalElec', inputs=[fx.Flow('Load', bus='Electricity', size=1, fixed_relative_profile=electricity_demand)]\n ),\n fx.Sink('HospitalHeat', inputs=[fx.Flow('Load', bus='Heat', size=1, fixed_relative_profile=heat_demand)]),\n)\n\nfs_no_chp.optimize(fx.solvers.HighsSolver())\n\nno_chp_costs = fs_no_chp.solution['costs'].item()\nno_chp_co2 = fs_no_chp.solution['CO2'].item()\n\nprint('=== CHP Benefit Analysis ===')\nprint(f'Without CHP: {no_chp_costs:.2f} € / {no_chp_co2:.0f} kg CO2')\nprint(f'With CHP: {total_costs:.2f} € / {total_co2:.0f} kg CO2')\nprint(f'Cost savings: {no_chp_costs - total_costs:.2f} € ({(no_chp_costs - total_costs) / no_chp_costs * 100:.1f}%)')\nprint(f'CO2 reduction: {no_chp_co2 - total_co2:.0f} kg ({(no_chp_co2 - total_co2) / no_chp_co2 * 100:.1f}%)')" + "source": [ + "# Build system without CHP\n", + "fs_no_chp = fx.FlowSystem(timesteps)\n", + "fs_no_chp.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('electricity', '#f1c40f', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "fs_no_chp.add_elements(\n", + " fx.Bus('Electricity', carrier='electricity'),\n", + " fx.Bus('Heat', carrier='heat'),\n", + " fx.Bus('Gas', carrier='gas'),\n", + " fx.Effect('costs', '€', 'Total Costs', is_standard=True, is_objective=True),\n", + " fx.Effect('CO2', 'kg', 'CO2 Emissions'),\n", + " fx.Source(\n", + " 'GasGrid',\n", + " outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour={'costs': gas_price, 'CO2': 0.2})],\n", + " ),\n", + " fx.Source(\n", + " 'GridBuy',\n", + " outputs=[\n", + " fx.Flow(\n", + " 'Electricity', bus='Electricity', size=500, effects_per_flow_hour={'costs': elec_buy_price, 'CO2': 0.4}\n", + " )\n", + " ],\n", + " ),\n", + " # Only boiler for heat\n", + " fx.linear_converters.Boiler(\n", + " 'Boiler',\n", + " thermal_efficiency=0.92,\n", + " thermal_flow=fx.Flow('Q_th', bus='Heat', size=500),\n", + " fuel_flow=fx.Flow('Q_fuel', bus='Gas'),\n", + " ),\n", + " fx.Sink(\n", + " 'HospitalElec', inputs=[fx.Flow('Load', bus='Electricity', size=1, fixed_relative_profile=electricity_demand)]\n", + " ),\n", + " fx.Sink('HospitalHeat', inputs=[fx.Flow('Load', bus='Heat', size=1, fixed_relative_profile=heat_demand)]),\n", + ")\n", + "\n", + "fs_no_chp.optimize(fx.solvers.HighsSolver())\n", + "\n", + "no_chp_costs = fs_no_chp.solution['costs'].item()\n", + "no_chp_co2 = fs_no_chp.solution['CO2'].item()\n", + "\n", + "cost_saving = (no_chp_costs - total_costs) / no_chp_costs * 100\n", + "co2_saving = (no_chp_co2 - total_co2) / no_chp_co2 * 100\n", + "print(\n", + " f'CHP saves {cost_saving:.1f}% costs ({no_chp_costs:.0f}→{total_costs:.0f} €) and {co2_saving:.1f}% CO2 ({no_chp_co2:.0f}→{total_co2:.0f} kg)'\n", + ")" + ] }, { "cell_type": "markdown", diff --git a/docs/notebooks/06a-time-varying-parameters.ipynb b/docs/notebooks/06a-time-varying-parameters.ipynb index 9856aa095..5a6392556 100644 --- a/docs/notebooks/06a-time-varying-parameters.ipynb +++ b/docs/notebooks/06a-time-varying-parameters.ipynb @@ -50,8 +50,8 @@ "\n", "A heat pump's COP (Coefficient of Performance) depends on the temperature difference between source and sink:\n", "\n", - "- **Mild weather** (10°C outside): COP ≈ 4.5 (1 kWh electricity → 4.5 kWh heat)\n", - "- **Cold weather** (-5°C outside): COP ≈ 2.5 (1 kWh electricity → 2.5 kWh heat)\n", + "- **Mild weather** (10\u00b0C outside): COP \u2248 4.5 (1 kWh electricity \u2192 4.5 kWh heat)\n", + "- **Cold weather** (-5\u00b0C outside): COP \u2248 2.5 (1 kWh electricity \u2192 2.5 kWh heat)\n", "\n", "This time-varying relationship can be modeled directly using arrays in the conversion factors.\n", "\n", @@ -82,7 +82,7 @@ "hour_of_day = hours % 24\n", "\n", "# Outdoor temperature: daily cycle with cold nights\n", - "temp_base = 2 # Average temp in °C\n", + "temp_base = 2 # Average temp in \u00b0C\n", "temp_amplitude = 5 # Daily variation\n", "outdoor_temp = temp_base + temp_amplitude * np.sin((hour_of_day - 6) * np.pi / 12)\n", "\n", @@ -114,7 +114,7 @@ "# Visualize input profiles\n", "profiles = xr.Dataset(\n", " {\n", - " 'Outdoor Temp [°C]': xr.DataArray(outdoor_temp, dims=['time'], coords={'time': timesteps}),\n", + " 'Outdoor Temp [\u00b0C]': xr.DataArray(outdoor_temp, dims=['time'], coords={'time': timesteps}),\n", " 'Heat Demand [kW]': xr.DataArray(heat_demand, dims=['time'], coords={'time': timesteps}),\n", " }\n", ")\n", @@ -148,7 +148,7 @@ "metadata": {}, "source": [ "# COP calculation\n", - "T_supply = 45 + 273.15 # Supply temperature 45°C in Kelvin\n", + "T_supply = 45 + 273.15 # Supply temperature 45\u00b0C in Kelvin\n", "T_source = outdoor_temp + 273.15 # Outdoor temp in Kelvin\n", "\n", "carnot_cop = T_supply / (T_supply - T_source)\n", @@ -168,7 +168,7 @@ " x=outdoor_temp,\n", " y=real_cop,\n", " title='Heat Pump COP vs Outdoor Temperature',\n", - " labels={'x': 'Outdoor Temperature [°C]', 'y': 'COP'},\n", + " labels={'x': 'Outdoor Temperature [\u00b0C]', 'y': 'COP'},\n", " opacity=0.5,\n", ")" ], @@ -193,7 +193,7 @@ "cell_type": "code", "id": "12", "metadata": {}, - "source": "flow_system = fx.FlowSystem(timesteps)\nflow_system.add_carriers(\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nflow_system.add_elements(\n # Buses\n fx.Bus('Electricity', carrier='electricity'),\n fx.Bus('Heat', carrier='heat'),\n # Effect for cost tracking\n fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n # Grid electricity source\n fx.Source('Grid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.30)]),\n # Heat pump with TIME-VARYING COP\n fx.LinearConverter(\n 'HeatPump',\n inputs=[fx.Flow('Elec', bus='Electricity', size=150)],\n outputs=[fx.Flow('Heat', bus='Heat', size=500)],\n conversion_factors=[{'Elec': real_cop, 'Heat': 1}], # <-- Array for time-varying COP\n ),\n # Heat demand\n fx.Sink('Building', inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=heat_demand)]),\n)\n\nflow_system.optimize(fx.solvers.HighsSolver())", + "source": "flow_system = fx.FlowSystem(timesteps)\nflow_system.add_carriers(\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nflow_system.add_elements(\n # Buses\n fx.Bus('Electricity', carrier='electricity'),\n fx.Bus('Heat', carrier='heat'),\n # Effect for cost tracking\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # Grid electricity source\n fx.Source('Grid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.30)]),\n # Heat pump with TIME-VARYING COP\n fx.LinearConverter(\n 'HeatPump',\n inputs=[fx.Flow('Elec', bus='Electricity', size=150)],\n outputs=[fx.Flow('Heat', bus='Heat', size=500)],\n conversion_factors=[{'Elec': real_cop, 'Heat': 1}], # <-- Array for time-varying COP\n ),\n # Heat demand\n fx.Sink('Building', inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=heat_demand)]),\n)\n\nflow_system.optimize(fx.solvers.HighsSolver());", "outputs": [], "execution_count": null }, @@ -249,7 +249,7 @@ " x=comparison['outdoor_temp'].values,\n", " y=comparison['effective_cop'].values,\n", " title='Actual Operating COP vs Outdoor Temperature',\n", - " labels={'x': 'Outdoor Temperature [°C]', 'y': 'Operating COP'},\n", + " labels={'x': 'Outdoor Temperature [\u00b0C]', 'y': 'Operating COP'},\n", ")" ], "outputs": [], @@ -283,7 +283,7 @@ "The conversion equation at each timestep:\n", "$$\\text{Input}_1 \\times \\text{factor}_1(t) + \\text{Input}_2 \\times \\text{factor}_2(t) + ... = 0$$\n", "\n", - "For a heat pump: `Elec * COP(t) - Heat * 1 = 0` → `Heat = Elec * COP(t)`\n", + "For a heat pump: `Elec * COP(t) - Heat * 1 = 0` \u2192 `Heat = Elec * COP(t)`\n", "\n", "### Common Use Cases\n", "\n", diff --git a/docs/notebooks/06b-piecewise-conversion.ipynb b/docs/notebooks/06b-piecewise-conversion.ipynb index 6493a843c..71e81e4ae 100644 --- a/docs/notebooks/06b-piecewise-conversion.ipynb +++ b/docs/notebooks/06b-piecewise-conversion.ipynb @@ -122,59 +122,6 @@ } }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running HiGHS 1.12.0 (git hash: 755a8e0): Copyright (c) 2025 HiGHS under MIT licence terms\n", - "MIP linopy-problem-0haogvbp has 298 rows; 394 cols; 1070 nonzeros; 72 integer variables (72 binary)\n", - "Coefficient ranges:\n", - " Matrix [5e-02, 2e+02]\n", - " Cost [1e+00, 1e+00]\n", - " Bound [1e+00, 3e+02]\n", - " RHS [1e+00, 1e+00]\n", - "Presolving model\n", - "168 rows, 240 cols, 672 nonzeros 0s\n", - "119 rows, 214 cols, 428 nonzeros 0s\n", - "97 rows, 60 cols, 115 nonzeros 0s\n", - "6 rows, 10 cols, 20 nonzeros 0s\n", - "Presolve reductions: rows 6(-292); columns 10(-384); nonzeros 20(-1050) \n", - "\n", - "Solving MIP model with:\n", - " 6 rows\n", - " 10 cols (2 binary, 0 integer, 0 implied int., 8 continuous, 0 domain fixed)\n", - " 20 nonzeros\n", - "\n", - "Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic;\n", - " I => Shifting; J => Feasibility jump; L => Sub-MIP; P => Empty MIP; R => Randomized rounding;\n", - " S => Solve LP; T => Evaluate node; U => Unbounded; X => User solution; Y => HiGHS solution;\n", - " Z => ZI Round; l => Trivial lower; p => Trivial point; u => Trivial upper; z => Trivial zero\n", - "\n", - " Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work \n", - "Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time\n", - "\n", - " J 0 0 0 100.00% -inf 182.9596783 Large 0 0 0 0 0.0s\n", - " 1 0 1 100.00% 182.9596783 182.9596783 0.00% 0 0 0 0 0.0s\n", - "\n", - "Solving report\n", - " Model linopy-problem-0haogvbp\n", - " Status Optimal\n", - " Primal bound 182.959678343\n", - " Dual bound 182.959678343\n", - " Gap 0% (tolerance: 1%)\n", - " P-D integral 0\n", - " Solution status feasible\n", - " 182.959678343 (objective)\n", - " 0 (bound viol.)\n", - " 0 (int. viol.)\n", - " 0 (row viol.)\n", - " Timing 0.01\n", - " Max sub-MIP depth 0\n", - " Nodes 1\n", - " Repair LPs 0\n", - " LP iterations 0\n" - ] - }, { "data": { "text/plain": [ @@ -183,7 +130,7 @@ "Timesteps: 24 (Hour) [2024-01-22 to 2024-01-22]\n", "Periods: None\n", "Scenarios: None\n", - "Status: ✓\n", + "Status: \u2713\n", "\n", "Components (3 items)\n", "--------------------\n", @@ -224,7 +171,7 @@ "fs.add_elements(\n", " fx.Bus('Gas'),\n", " fx.Bus('Electricity'),\n", - " fx.Effect('costs', '€', is_standard=True, is_objective=True),\n", + " fx.Effect('costs', '\u20ac', is_standard=True, is_objective=True),\n", " fx.Source('GasGrid', outputs=[fx.Flow('Gas', bus='Gas', size=300, effects_per_flow_hour=0.05)]),\n", " fx.LinearConverter(\n", " 'GasEngine',\n", @@ -235,7 +182,7 @@ " fx.Sink('Load', inputs=[fx.Flow('Elec', bus='Electricity', size=1, fixed_relative_profile=elec_demand)]),\n", ")\n", "\n", - "fs.optimize(fx.solvers.HighsSolver())" + "fs.optimize(fx.solvers.HighsSolver());" ] }, { @@ -4066,7 +4013,7 @@ "#endif\n", "`}),staticAttributes:Q,staticUniforms:qe}}class kr{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,le,qe,Xe,ot,Tt){this.context=w;let Yt=this.boundPaintVertexBuffers.length!==ee.length;for(let Kt=0;!Yt&&Kt({u_matrix:ue,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 vi(ue){let w=[];for(let B=0;B({u_depth:new a.aH(Ht,tr.u_depth),u_terrain:new a.aH(Ht,tr.u_terrain),u_terrain_dim:new a.aI(Ht,tr.u_terrain_dim),u_terrain_matrix:new a.aJ(Ht,tr.u_terrain_matrix),u_terrain_unpack:new a.aK(Ht,tr.u_terrain_unpack),u_terrain_exaggeration:new a.aI(Ht,tr.u_terrain_exaggeration)}))(w,Ft),this.binderUniforms=Q?Q.getUniforms(w,Ft):[]}draw(w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve,be,De,Be,et){let We=w.gl;if(this.failedToCreate)return;if(w.program.set(this.program),w.setDepthMode(Q),w.setStencilMode(ee),w.setColorMode(le),w.setCullFace(qe),ot){w.activeTexture.set(We.TEXTURE2),We.bindTexture(We.TEXTURE_2D,ot.depthTexture),w.activeTexture.set(We.TEXTURE3),We.bindTexture(We.TEXTURE_2D,ot.texture);for(let Ft in this.terrainUniforms)this.terrainUniforms[Ft].set(ot[Ft])}for(let Ft in this.fixedUniforms)this.fixedUniforms[Ft].set(Xe[Ft]);be&&be.setUniforms(w,this.binderUniforms,Ir,{zoom:ve});let it=0;switch(B){case We.LINES:it=2;break;case We.TRIANGLES:it=3;break;case We.LINE_STRIP:it=1}for(let Ft of xr.get()){let Ht=Ft.vaos||(Ft.vaos={});(Ht[Tt]||(Ht[Tt]=new kr)).bind(w,this,Yt,be?be.getPaintVertexBuffers():[],Kt,Ft.vertexOffset,De,Be,et),We.drawElements(B,Ft.primitiveLength*it,We.UNSIGNED_SHORT,Ft.primitiveOffset*it*2)}}}function An(ue,w,B){let Q=1/In(B,1,w.transform.tileZoom),ee=Math.pow(2,B.tileID.overscaledZ),le=B.tileSize*Math.pow(2,w.transform.tileZoom)/ee,qe=le*(B.tileID.canonical.x+B.tileID.wrap*ee),Xe=le*B.tileID.canonical.y;return{u_image:0,u_texsize:B.imageAtlasTexture.size,u_scale:[Q,ue.fromScale,ue.toScale],u_fade:ue.t,u_pixel_coord_upper:[qe>>16,Xe>>16],u_pixel_coord_lower:[65535&qe,65535&Xe]}}let Mn=(ue,w,B,Q)=>{let ee=w.style.light,le=ee.properties.get(\"position\"),qe=[le.x,le.y,le.z],Xe=function(){var Tt=new a.A(9);return a.A!=Float32Array&&(Tt[1]=0,Tt[2]=0,Tt[3]=0,Tt[5]=0,Tt[6]=0,Tt[7]=0),Tt[0]=1,Tt[4]=1,Tt[8]=1,Tt}();ee.properties.get(\"anchor\")===\"viewport\"&&function(Tt,Yt){var Kt=Math.sin(Yt),xr=Math.cos(Yt);Tt[0]=xr,Tt[1]=Kt,Tt[2]=0,Tt[3]=-Kt,Tt[4]=xr,Tt[5]=0,Tt[6]=0,Tt[7]=0,Tt[8]=1}(Xe,-w.transform.angle),function(Tt,Yt,Kt){var xr=Yt[0],Ir=Yt[1],ve=Yt[2];Tt[0]=xr*Kt[0]+Ir*Kt[3]+ve*Kt[6],Tt[1]=xr*Kt[1]+Ir*Kt[4]+ve*Kt[7],Tt[2]=xr*Kt[2]+Ir*Kt[5]+ve*Kt[8]}(qe,qe,Xe);let ot=ee.properties.get(\"color\");return{u_matrix:ue,u_lightpos:qe,u_lightintensity:ee.properties.get(\"intensity\"),u_lightcolor:[ot.r,ot.g,ot.b],u_vertical_gradient:+B,u_opacity:Q}},Li=(ue,w,B,Q,ee,le,qe)=>a.e(Mn(ue,w,B,Q),An(le,w,qe),{u_height_factor:-Math.pow(2,ee.overscaledZ)/qe.tileSize/8}),_n=ue=>({u_matrix:ue}),ya=(ue,w,B,Q)=>a.e(_n(ue),An(B,w,Q)),Jn=(ue,w)=>({u_matrix:ue,u_world:w}),Ma=(ue,w,B,Q,ee)=>a.e(ya(ue,w,B,Q),{u_world:ee}),_o=(ue,w,B,Q)=>{let ee=ue.transform,le,qe;if(Q.paint.get(\"circle-pitch-alignment\")===\"map\"){let Xe=In(B,1,ee.zoom);le=!0,qe=[Xe,Xe]}else le=!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:ue.translatePosMatrix(w.posMatrix,B,Q.paint.get(\"circle-translate\"),Q.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+le,u_device_pixel_ratio:ue.pixelRatio,u_extrude_scale:qe}},No=(ue,w,B)=>({u_matrix:ue,u_inv_matrix:w,u_camera_to_center_distance:B.cameraToCenterDistance,u_viewport_size:[B.width,B.height]}),po=(ue,w,B=1)=>({u_matrix:ue,u_color:w,u_overlay:0,u_overlay_scale:B}),Lo=ue=>({u_matrix:ue}),ko=(ue,w,B,Q)=>({u_matrix:ue,u_extrude_scale:In(w,1,B),u_intensity:Q}),Ds=(ue,w,B,Q)=>{let ee=a.H();a.aP(ee,0,ue.width,ue.height,0,0,1);let le=ue.context.gl;return{u_matrix:ee,u_world:[le.drawingBufferWidth,le.drawingBufferHeight],u_image:B,u_color_ramp:Q,u_opacity:w.paint.get(\"heatmap-opacity\")}};function Fs(ue,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 ll=(ue,w,B,Q)=>{let ee=ue.transform;return{u_matrix:As(ue,w,B,Q),u_ratio:1/In(w,1,ee.zoom),u_device_pixel_ratio:ue.pixelRatio,u_units_to_pixels:[1/ee.pixelsToGLUnits[0],1/ee.pixelsToGLUnits[1]]}},ul=(ue,w,B,Q,ee)=>a.e(ll(ue,w,B,ee),{u_image:0,u_image_height:Q}),zl=(ue,w,B,Q,ee)=>{let le=ue.transform,qe=il(w,le);return{u_matrix:As(ue,w,B,ee),u_texsize:w.imageAtlasTexture.size,u_ratio:1/In(w,1,le.zoom),u_device_pixel_ratio:ue.pixelRatio,u_image:0,u_scale:[qe,Q.fromScale,Q.toScale],u_fade:Q.t,u_units_to_pixels:[1/le.pixelsToGLUnits[0],1/le.pixelsToGLUnits[1]]}},us=(ue,w,B,Q,ee,le)=>{let qe=ue.lineAtlas,Xe=il(w,ue.transform),ot=B.layout.get(\"line-cap\")===\"round\",Tt=qe.getDash(Q.from,ot),Yt=qe.getDash(Q.to,ot),Kt=Tt.width*ee.fromScale,xr=Yt.width*ee.toScale;return a.e(ll(ue,w,B,le),{u_patternscale_a:[Xe/Kt,-Tt.height/2],u_patternscale_b:[Xe/xr,-Yt.height/2],u_sdfgamma:qe.width/(256*Math.min(Kt,xr)*ue.pixelRatio)/2,u_image:0,u_tex_y_a:Tt.y,u_tex_y_b:Yt.y,u_mix:ee.t})};function il(ue,w){return 1/In(ue,1,w.tileZoom)}function As(ue,w,B,Q){return ue.translatePosMatrix(Q?Q.posMatrix:w.tileID.posMatrix,w,B.paint.get(\"line-translate\"),B.paint.get(\"line-translate-anchor\"))}let cl=(ue,w,B,Q,ee)=>{return{u_matrix:ue,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:(le=ee.paint.get(\"raster-contrast\"),le>0?1/(1-le):1+le),u_spin_weights:Ks(ee.paint.get(\"raster-hue-rotate\"))};var le,qe};function Ks(ue){ue*=Math.PI/180;let w=Math.sin(ue),B=Math.cos(ue);return[(2*B+1)/3,(-Math.sqrt(3)*w-B+1)/3,(Math.sqrt(3)*w-B+1)/3]}let zs=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>{let ve=qe.transform;return{u_is_size_zoom_constant:+(ue===\"constant\"||ue===\"source\"),u_is_size_feature_constant:+(ue===\"constant\"||ue===\"camera\"),u_size_t:w?w.uSizeT:0,u_size:w?w.uSize:0,u_camera_to_center_distance:ve.cameraToCenterDistance,u_pitch:ve.pitch/360*2*Math.PI,u_rotate_symbol:+B,u_aspect_ratio:ve.width/ve.height,u_fade_change:qe.options.fadeDuration?qe.symbolFadeChange:1,u_matrix:Xe,u_label_plane_matrix:ot,u_coord_matrix:Tt,u_is_text:+Kt,u_pitch_with_map:+Q,u_is_along_line:ee,u_is_variable_anchor:le,u_texsize:xr,u_texture:0,u_translation:Yt,u_pitched_scale:Ir}},Io=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve)=>{let be=qe.transform;return a.e(zs(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,ve),{u_gamma_scale:Q?Math.cos(be._pitch)*be.cameraToCenterDistance:1,u_device_pixel_ratio:qe.pixelRatio,u_is_halo:+Ir})},ls=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>a.e(Io(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,!0,Kt,!0,Ir),{u_texsize_icon:xr,u_texture_icon:1}),Zl=(ue,w,B)=>({u_matrix:ue,u_opacity:w,u_color:B}),Su=(ue,w,B,Q,ee,le)=>a.e(function(qe,Xe,ot,Tt){let Yt=ot.imageManager.getPattern(qe.from.toString()),Kt=ot.imageManager.getPattern(qe.to.toString()),{width:xr,height:Ir}=ot.imageManager.getPixelSize(),ve=Math.pow(2,Tt.tileID.overscaledZ),be=Tt.tileSize*Math.pow(2,ot.transform.tileZoom)/ve,De=be*(Tt.tileID.canonical.x+Tt.tileID.wrap*ve),Be=be*Tt.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Yt.tl,u_pattern_br_a:Yt.br,u_pattern_tl_b:Kt.tl,u_pattern_br_b:Kt.br,u_texsize:[xr,Ir],u_mix:Xe.t,u_pattern_size_a:Yt.displaySize,u_pattern_size_b:Kt.displaySize,u_scale_a:Xe.fromScale,u_scale_b:Xe.toScale,u_tile_units_to_pixels:1/In(Tt,1,ot.transform.tileZoom),u_pixel_coord_upper:[De>>16,Be>>16],u_pixel_coord_lower:[65535&De,65535&Be]}}(Q,le,B,ee),{u_matrix:ue,u_opacity:w}),nc={fillExtrusion:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_opacity:new a.aI(ue,w.u_opacity)}),fillExtrusionPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_height_factor:new a.aI(ue,w.u_height_factor),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade),u_opacity:new a.aI(ue,w.u_opacity)}),fill:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),fillPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),fillOutline:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world)}),fillOutlinePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),circle:(ue,w)=>({u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_scale_with_map:new a.aH(ue,w.u_scale_with_map),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_extrude_scale:new a.aO(ue,w.u_extrude_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_matrix:new a.aJ(ue,w.u_matrix)}),collisionBox:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_pixel_extrude_scale:new a.aO(ue,w.u_pixel_extrude_scale)}),collisionCircle:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_inv_matrix:new a.aJ(ue,w.u_inv_matrix),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_viewport_size:new a.aO(ue,w.u_viewport_size)}),debug:(ue,w)=>({u_color:new a.aL(ue,w.u_color),u_matrix:new a.aJ(ue,w.u_matrix),u_overlay:new a.aH(ue,w.u_overlay),u_overlay_scale:new a.aI(ue,w.u_overlay_scale)}),clippingMask:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),heatmap:(ue,w)=>({u_extrude_scale:new a.aI(ue,w.u_extrude_scale),u_intensity:new a.aI(ue,w.u_intensity),u_matrix:new a.aJ(ue,w.u_matrix)}),heatmapTexture:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_color_ramp:new a.aH(ue,w.u_color_ramp),u_opacity:new a.aI(ue,w.u_opacity)}),hillshade:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_latrange:new a.aO(ue,w.u_latrange),u_light:new a.aO(ue,w.u_light),u_shadow:new a.aL(ue,w.u_shadow),u_highlight:new a.aL(ue,w.u_highlight),u_accent:new a.aL(ue,w.u_accent)}),hillshadePrepare:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_dimension:new a.aO(ue,w.u_dimension),u_zoom:new a.aI(ue,w.u_zoom),u_unpack:new a.aK(ue,w.u_unpack)}),line:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels)}),lineGradient:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_image:new a.aH(ue,w.u_image),u_image_height:new a.aI(ue,w.u_image_height)}),linePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texsize:new a.aO(ue,w.u_texsize),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_image:new a.aH(ue,w.u_image),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),lineSDF:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_patternscale_a:new a.aO(ue,w.u_patternscale_a),u_patternscale_b:new a.aO(ue,w.u_patternscale_b),u_sdfgamma:new a.aI(ue,w.u_sdfgamma),u_image:new a.aH(ue,w.u_image),u_tex_y_a:new a.aI(ue,w.u_tex_y_a),u_tex_y_b:new a.aI(ue,w.u_tex_y_b),u_mix:new a.aI(ue,w.u_mix)}),raster:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_tl_parent:new a.aO(ue,w.u_tl_parent),u_scale_parent:new a.aI(ue,w.u_scale_parent),u_buffer_scale:new a.aI(ue,w.u_buffer_scale),u_fade_t:new a.aI(ue,w.u_fade_t),u_opacity:new a.aI(ue,w.u_opacity),u_image0:new a.aH(ue,w.u_image0),u_image1:new a.aH(ue,w.u_image1),u_brightness_low:new a.aI(ue,w.u_brightness_low),u_brightness_high:new a.aI(ue,w.u_brightness_high),u_saturation_factor:new a.aI(ue,w.u_saturation_factor),u_contrast_factor:new a.aI(ue,w.u_contrast_factor),u_spin_weights:new a.aN(ue,w.u_spin_weights)}),symbolIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolSDF:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolTextAndIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texsize_icon:new a.aO(ue,w.u_texsize_icon),u_texture:new a.aH(ue,w.u_texture),u_texture_icon:new a.aH(ue,w.u_texture_icon),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),background:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_color:new a.aL(ue,w.u_color)}),backgroundPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_image:new a.aH(ue,w.u_image),u_pattern_tl_a:new a.aO(ue,w.u_pattern_tl_a),u_pattern_br_a:new a.aO(ue,w.u_pattern_br_a),u_pattern_tl_b:new a.aO(ue,w.u_pattern_tl_b),u_pattern_br_b:new a.aO(ue,w.u_pattern_br_b),u_texsize:new a.aO(ue,w.u_texsize),u_mix:new a.aI(ue,w.u_mix),u_pattern_size_a:new a.aO(ue,w.u_pattern_size_a),u_pattern_size_b:new a.aO(ue,w.u_pattern_size_b),u_scale_a:new a.aI(ue,w.u_scale_a),u_scale_b:new a.aI(ue,w.u_scale_b),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_tile_units_to_pixels:new a.aI(ue,w.u_tile_units_to_pixels)}),terrain:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_ele_delta:new a.aI(ue,w.u_ele_delta),u_fog_matrix:new a.aJ(ue,w.u_fog_matrix),u_fog_color:new a.aL(ue,w.u_fog_color),u_fog_ground_blend:new a.aI(ue,w.u_fog_ground_blend),u_fog_ground_blend_opacity:new a.aI(ue,w.u_fog_ground_blend_opacity),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon_fog_blend:new a.aI(ue,w.u_horizon_fog_blend)}),terrainDepth:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),terrainCoords:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_terrain_coords_id:new a.aI(ue,w.u_terrain_coords_id),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),sky:(ue,w)=>({u_sky_color:new a.aL(ue,w.u_sky_color),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon:new a.aI(ue,w.u_horizon),u_sky_horizon_blend:new a.aI(ue,w.u_sky_horizon_blend)})};class bs{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 Rn={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class _a{constructor(w,B,Q,ee){this.length=B.length,this.attributes=Q,this.itemSize=B.bytesPerElement,this.dynamicDraw=ee,this.context=w;let le=w.gl;this.buffer=le.createBuffer(),w.bindVertexBuffer.set(this.buffer),le.bufferData(le.ARRAY_BUFFER,B.arrayBuffer,this.dynamicDraw?le.DYNAMIC_DRAW:le.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 Ht=a.H();a.aQ(Ht,We.placementInvProjMatrix,ue.transform.glCoordMatrix),a.aQ(Ht,Ht,We.placementViewportMatrix),ot.push({circleArray:Ft,circleOffset:Yt,transform:et.posMatrix,invTransform:Ht,coord:et}),Tt+=Ft.length/4,Yt=Tt}it&&Xe.draw(le,qe.LINES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,{u_matrix:et.posMatrix,u_pixel_extrude_scale:[1/(Kt=ue.transform).width,1/Kt.height]},ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et),B.id,it.layoutVertexBuffer,it.indexBuffer,it.segments,null,ue.transform.zoom,null,null,it.collisionVertexBuffer)}var Kt;if(!ee||!ot.length)return;let xr=ue.useProgram(\"collisionCircle\"),Ir=new a.aR;Ir.resize(4*Tt),Ir._trim();let ve=0;for(let Be of ot)for(let et=0;et=0&&(Be[We.associatedIconIndex]={shiftedAnchor:Kn,angle:Ta})}else pi(We.numGlyphs,be)}if(Tt){De.clear();let et=ue.icon.placedSymbolArray;for(let We=0;Weue.style.map.terrain.getElevation(Wr,nt,jt):null,kt=B.layout.get(\"text-rotation-alignment\")===\"map\";je(Pi,Wr.posMatrix,ue,ee,Ul,au,Be,Tt,kt,be,Wr.toUnwrapped(),ve.width,ve.height,Js,Ye)}let Tl=Wr.posMatrix,Al=ee&&dr||dc,X=et||Al?bl:Ul,se=Lu,Te=Cn&&B.paint.get(ee?\"text-halo-width\":\"icon-halo-width\").constantOr(1)!==0,Ne;Ne=Cn?Pi.iconsInText?ls(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,Qa,Ts,Or):Io(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,!0,Or):zs(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,Or);let He={program:fa,buffers:cn,uniformValues:Ne,atlasTexture:mo,atlasTextureIcon:wo,atlasInterpolation:Bo,atlasInterpolationIcon:Ps,isSDF:Cn,hasHalo:Te};if(Ft&&Pi.canOverlap){Ht=!0;let Ye=cn.segments.get();for(let kt of Ye)Sr.push({segments:new a.a0([kt]),sortKey:kt.sortKey,state:He,terrainData:Co})}else Sr.push({segments:cn.segments,sortKey:0,state:He,terrainData:Co})}Ht&&Sr.sort((Wr,ni)=>Wr.sortKey-ni.sortKey);for(let Wr of Sr){let ni=Wr.state;if(xr.activeTexture.set(Ir.TEXTURE0),ni.atlasTexture.bind(ni.atlasInterpolation,Ir.CLAMP_TO_EDGE),ni.atlasTextureIcon&&(xr.activeTexture.set(Ir.TEXTURE1),ni.atlasTextureIcon&&ni.atlasTextureIcon.bind(ni.atlasInterpolationIcon,Ir.CLAMP_TO_EDGE)),ni.isSDF){let Pi=ni.uniformValues;ni.hasHalo&&(Pi.u_is_halo=1,Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,Pi,Wr.terrainData)),Pi.u_is_halo=0}Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,ni.uniformValues,Wr.terrainData)}}function Qf(ue,w,B,Q,ee,le,qe,Xe,ot,Tt){let Yt=Q.context;ee.draw(Yt,Yt.gl.TRIANGLES,le,qe,Xe,Pa.disabled,ot,Tt,B.id,ue.layoutVertexBuffer,ue.indexBuffer,w,B.paint,Q.transform.zoom,ue.programConfigurations.get(B.id),ue.dynamicLayoutVertexBuffer,ue.opacityVertexBuffer)}function _f(ue,w,B,Q){let ee=ue.context,le=ee.gl,qe=Yo.disabled,Xe=new qs([le.ONE,le.ONE],a.aM.transparent,[!0,!0,!0,!0]),ot=w.getBucket(B);if(!ot)return;let Tt=Q.key,Yt=B.heatmapFbos.get(Tt);Yt||(Yt=eh(ee,w.tileSize,w.tileSize),B.heatmapFbos.set(Tt,Yt)),ee.bindFramebuffer.set(Yt.framebuffer),ee.viewport.set([0,0,w.tileSize,w.tileSize]),ee.clear({color:a.aM.transparent});let Kt=ot.programConfigurations.get(B.id),xr=ue.useProgram(\"heatmap\",Kt),Ir=ue.style.map.terrain.getTerrainData(Q);xr.draw(ee,le.TRIANGLES,Po.disabled,qe,Xe,Pa.disabled,ko(Q.posMatrix,w,ue.transform.zoom,B.paint.get(\"heatmap-intensity\")),Ir,B.id,ot.layoutVertexBuffer,ot.indexBuffer,ot.segments,B.paint,ue.transform.zoom,Kt)}function Yc(ue,w,B){let Q=ue.context,ee=Q.gl;Q.setColorMode(ue.colorModeForRenderPass());let le=th(Q,w),qe=B.key,Xe=w.heatmapFbos.get(qe);Xe&&(Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Xe.colorAttachment.get()),Q.activeTexture.set(ee.TEXTURE1),le.bind(ee.LINEAR,ee.CLAMP_TO_EDGE),ue.useProgram(\"heatmapTexture\").draw(Q,ee.TRIANGLES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,Ds(ue,w,0,1),null,w.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments,w.paint,ue.transform.zoom),Xe.destroy(),w.heatmapFbos.delete(qe))}function eh(ue,w,B){var Q,ee;let le=ue.gl,qe=le.createTexture();le.bindTexture(le.TEXTURE_2D,qe),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_S,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_T,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MIN_FILTER,le.LINEAR),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MAG_FILTER,le.LINEAR);let Xe=(Q=ue.HALF_FLOAT)!==null&&Q!==void 0?Q:le.UNSIGNED_BYTE,ot=(ee=ue.RGBA16F)!==null&&ee!==void 0?ee:le.RGBA;le.texImage2D(le.TEXTURE_2D,0,ot,w,B,0,le.RGBA,Xe,null);let Tt=ue.createFramebuffer(w,B,!1,!1);return Tt.colorAttachment.set(qe),Tt}function th(ue,w){return w.colorRampTexture||(w.colorRampTexture=new g(ue,w.colorRamp,ue.gl.RGBA)),w.colorRampTexture}function ju(ue,w,B,Q,ee){if(!B||!Q||!Q.imageAtlas)return;let le=Q.imageAtlas.patternPositions,qe=le[B.to.toString()],Xe=le[B.from.toString()];if(!qe&&Xe&&(qe=Xe),!Xe&&qe&&(Xe=qe),!qe||!Xe){let ot=ee.getPaintProperty(w);qe=le[ot],Xe=le[ot]}qe&&Xe&&ue.setConstantPatternPositions(qe,Xe)}function Hf(ue,w,B,Q,ee,le,qe){let Xe=ue.context.gl,ot=\"fill-pattern\",Tt=B.paint.get(ot),Yt=Tt&&Tt.constantOr(1),Kt=B.getCrossfadeParameters(),xr,Ir,ve,be,De;qe?(Ir=Yt&&!B.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",xr=Xe.LINES):(Ir=Yt?\"fillPattern\":\"fill\",xr=Xe.TRIANGLES);let Be=Tt.constantOr(null);for(let et of Q){let We=w.getTile(et);if(Yt&&!We.patternsLoaded())continue;let it=We.getBucket(B);if(!it)continue;let Ft=it.programConfigurations.get(B.id),Ht=ue.useProgram(Ir,Ft),tr=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et);Yt&&(ue.context.activeTexture.set(Xe.TEXTURE0),We.imageAtlasTexture.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),Ft.updatePaintBuffers(Kt)),ju(Ft,ot,Be,We,B);let dr=tr?et:null,Sr=ue.translatePosMatrix(dr?dr.posMatrix:et.posMatrix,We,B.paint.get(\"fill-translate\"),B.paint.get(\"fill-translate-anchor\"));if(qe){be=it.indexBuffer2,De=it.segments2;let Or=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];ve=Ir===\"fillOutlinePattern\"&&Yt?Ma(Sr,ue,Kt,We,Or):Jn(Sr,Or)}else be=it.indexBuffer,De=it.segments,ve=Yt?ya(Sr,ue,Kt,We):_n(Sr);Ht.draw(ue.context,xr,ee,ue.stencilModeForClipping(et),le,Pa.disabled,ve,tr,B.id,it.layoutVertexBuffer,be,De,B.paint,ue.transform.zoom,Ft)}}function cc(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=\"fill-extrusion-pattern\",Yt=B.paint.get(Tt),Kt=Yt.constantOr(1),xr=B.getCrossfadeParameters(),Ir=B.paint.get(\"fill-extrusion-opacity\"),ve=Yt.constantOr(null);for(let be of Q){let De=w.getTile(be),Be=De.getBucket(B);if(!Be)continue;let et=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(be),We=Be.programConfigurations.get(B.id),it=ue.useProgram(Kt?\"fillExtrusionPattern\":\"fillExtrusion\",We);Kt&&(ue.context.activeTexture.set(ot.TEXTURE0),De.imageAtlasTexture.bind(ot.LINEAR,ot.CLAMP_TO_EDGE),We.updatePaintBuffers(xr)),ju(We,Tt,ve,De,B);let Ft=ue.translatePosMatrix(be.posMatrix,De,B.paint.get(\"fill-extrusion-translate\"),B.paint.get(\"fill-extrusion-translate-anchor\")),Ht=B.paint.get(\"fill-extrusion-vertical-gradient\"),tr=Kt?Li(Ft,ue,Ht,Ir,be,xr,De):Mn(Ft,ue,Ht,Ir);it.draw(Xe,Xe.gl.TRIANGLES,ee,le,qe,Pa.backCCW,tr,et,B.id,Be.layoutVertexBuffer,Be.indexBuffer,Be.segments,B.paint,ue.transform.zoom,We,ue.style.map.terrain&&Be.centroidVertexBuffer)}}function of(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=B.fbo;if(!Tt)return;let Yt=ue.useProgram(\"hillshade\"),Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(w);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,Tt.colorAttachment.get()),Yt.draw(Xe,ot.TRIANGLES,ee,le,qe,Pa.disabled,((xr,Ir,ve,be)=>{let De=ve.paint.get(\"hillshade-shadow-color\"),Be=ve.paint.get(\"hillshade-highlight-color\"),et=ve.paint.get(\"hillshade-accent-color\"),We=ve.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);ve.paint.get(\"hillshade-illumination-anchor\")===\"viewport\"&&(We-=xr.transform.angle);let it=!xr.options.moving;return{u_matrix:be?be.posMatrix:xr.transform.calculatePosMatrix(Ir.tileID.toUnwrapped(),it),u_image:0,u_latrange:Fs(0,Ir.tileID),u_light:[ve.paint.get(\"hillshade-exaggeration\"),We],u_shadow:De,u_highlight:Be,u_accent:et}})(ue,B,Q,Kt?w:null),Kt,Q.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments)}function Nl(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl,ot=w.dem;if(ot&&ot.data){let Tt=ot.dim,Yt=ot.stride,Kt=ot.getPixels();if(qe.activeTexture.set(Xe.TEXTURE1),qe.pixelStoreUnpackPremultiplyAlpha.set(!1),w.demTexture=w.demTexture||ue.getTileTexture(Yt),w.demTexture){let Ir=w.demTexture;Ir.update(Kt,{premultiply:!1}),Ir.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE)}else w.demTexture=new g(qe,Kt,Xe.RGBA,{premultiply:!1}),w.demTexture.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE);qe.activeTexture.set(Xe.TEXTURE0);let xr=w.fbo;if(!xr){let Ir=new g(qe,{width:Tt,height:Tt,data:null},Xe.RGBA);Ir.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),xr=w.fbo=qe.createFramebuffer(Tt,Tt,!0,!1),xr.colorAttachment.set(Ir.texture)}qe.bindFramebuffer.set(xr.framebuffer),qe.viewport.set([0,0,Tt,Tt]),ue.useProgram(\"hillshadePrepare\").draw(qe,Xe.TRIANGLES,Q,ee,le,Pa.disabled,((Ir,ve)=>{let be=ve.stride,De=a.H();return a.aP(De,0,a.X,-a.X,0,0,1),a.J(De,De,[0,-a.X,0]),{u_matrix:De,u_image:1,u_dimension:[be,be],u_zoom:Ir.overscaledZ,u_unpack:ve.getUnpackVector()}})(w.tileID,ot),null,B.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments),w.needsHillshadePrepare=!1}}function Kc(ue,w,B,Q,ee,le){let qe=Q.paint.get(\"raster-fade-duration\");if(!le&&qe>0){let Xe=u.now(),ot=(Xe-ue.timeAdded)/qe,Tt=w?(Xe-w.timeAdded)/qe:-1,Yt=B.getSource(),Kt=ee.coveringZoomLevel({tileSize:Yt.tileSize,roundZoom:Yt.roundZoom}),xr=!w||Math.abs(w.tileID.overscaledZ-Kt)>Math.abs(ue.tileID.overscaledZ-Kt),Ir=xr&&ue.refreshedUponExpiration?1:a.ac(xr?ot:1-Tt,0,1);return ue.refreshedUponExpiration&&ot>=1&&(ue.refreshedUponExpiration=!1),w?{opacity:1,mix:1-Ir}:{opacity:Ir,mix:0}}return{opacity:1,mix:0}}let Rc=new a.aM(1,0,0,1),gs=new a.aM(0,1,0,1),jf=new a.aM(0,0,1,1),Gh=new a.aM(1,0,1,1),rh=new a.aM(0,1,1,1);function sf(ue,w,B,Q){Mu(ue,0,w+B/2,ue.transform.width,B,Q)}function Th(ue,w,B,Q){Mu(ue,w-B/2,0,B,ue.transform.height,Q)}function Mu(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl;Xe.enable(Xe.SCISSOR_TEST),Xe.scissor(w*ue.pixelRatio,B*ue.pixelRatio,Q*ue.pixelRatio,ee*ue.pixelRatio),qe.clear({color:le}),Xe.disable(Xe.SCISSOR_TEST)}function ih(ue,w,B){let Q=ue.context,ee=Q.gl,le=B.posMatrix,qe=ue.useProgram(\"debug\"),Xe=Po.disabled,ot=Yo.disabled,Tt=ue.colorModeForRenderPass(),Yt=\"$debug\",Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(B);Q.activeTexture.set(ee.TEXTURE0);let xr=w.getTileByID(B.key).latestRawTileData,Ir=Math.floor((xr&&xr.byteLength||0)/1024),ve=w.getTile(B).tileSize,be=512/Math.min(ve,512)*(B.overscaledZ/ue.transform.zoom)*.5,De=B.canonical.toString();B.overscaledZ!==B.canonical.z&&(De+=` => ${B.overscaledZ}`),function(Be,et){Be.initDebugOverlayCanvas();let We=Be.debugOverlayCanvas,it=Be.context.gl,Ft=Be.debugOverlayCanvas.getContext(\"2d\");Ft.clearRect(0,0,We.width,We.height),Ft.shadowColor=\"white\",Ft.shadowBlur=2,Ft.lineWidth=1.5,Ft.strokeStyle=\"white\",Ft.textBaseline=\"top\",Ft.font=\"bold 36px Open Sans, sans-serif\",Ft.fillText(et,5,5),Ft.strokeText(et,5,5),Be.debugOverlayTexture.update(We),Be.debugOverlayTexture.bind(it.LINEAR,it.CLAMP_TO_EDGE)}(ue,`${De} ${Ir}kB`),qe.draw(Q,ee.TRIANGLES,Xe,ot,qs.alphaBlended,Pa.disabled,po(le,a.aM.transparent,be),null,Yt,ue.debugBuffer,ue.quadTriangleIndexBuffer,ue.debugSegments),qe.draw(Q,ee.LINE_STRIP,Xe,ot,Tt,Pa.disabled,po(le,a.aM.red),Kt,Yt,ue.debugBuffer,ue.tileBorderIndexBuffer,ue.debugSegments)}function js(ue,w,B){let Q=ue.context,ee=Q.gl,le=ue.colorModeForRenderPass(),qe=new Po(ee.LEQUAL,Po.ReadWrite,ue.depthRangeFor3D),Xe=ue.useProgram(\"terrain\"),ot=w.getTerrainMesh();Q.bindFramebuffer.set(null),Q.viewport.set([0,0,ue.width,ue.height]);for(let Tt of B){let Yt=ue.renderToTexture.getTexture(Tt),Kt=w.getTerrainData(Tt.tileID);Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Yt.texture);let xr=ue.transform.calculatePosMatrix(Tt.tileID.toUnwrapped()),Ir=w.getMeshFrameDelta(ue.transform.zoom),ve=ue.transform.calculateFogMatrix(Tt.tileID.toUnwrapped()),be=Jr(xr,Ir,ve,ue.style.sky,ue.transform.pitch);Xe.draw(Q,ee.TRIANGLES,qe,Yo.disabled,le,Pa.backCCW,be,Kt,\"terrain\",ot.vertexBuffer,ot.indexBuffer,ot.segments)}}class Eu{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 Dc{constructor(w,B){this.context=new ad(w),this.transform=B,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:a.an(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=mt.maxUnderzooming+mt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Wo}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,vo.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,vo.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,lt.members),this.rasterBoundsSegments=a.a0.simpleSegment(0,0,4,2);let le=new a.aX;le.emplaceBack(0,0),le.emplaceBack(1,0),le.emplaceBack(0,1),le.emplaceBack(1,1),this.viewportBuffer=w.createVertexBuffer(le,vo.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 Xe=new a.aY;Xe.emplaceBack(0,1,2),Xe.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=w.createIndexBuffer(Xe);let ot=this.context.gl;this.stencilClearMode=new Yo({func:ot.ALWAYS,mask:0},0,255,ot.ZERO,ot.ZERO,ot.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,Po.disabled,this.stencilClearMode,qs.disabled,Pa.disabled,Lo(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(qs.disabled),Q.setDepthMode(Po.disabled);let le=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(let qe of B){let Xe=this._tileClippingMaskIDs[qe.key]=this.nextStencilID++,ot=this.style.map.terrain&&this.style.map.terrain.getTerrainData(qe);le.draw(Q,ee.TRIANGLES,Po.disabled,new Yo({func:ee.ALWAYS,mask:0},Xe,255,ee.KEEP,ee.KEEP,ee.REPLACE),qs.disabled,Pa.disabled,Lo(qe.posMatrix),ot,\"$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 Yo({func:B.NOTEQUAL,mask:255},w,255,B.KEEP,B.KEEP,B.REPLACE)}stencilModeForClipping(w){let B=this.context.gl;return new Yo({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,Xe)=>Xe.overscaledZ-qe.overscaledZ),ee=Q[Q.length-1].overscaledZ,le=Q[0].overscaledZ-ee+1;if(le>1){this.currentStencilSource=void 0,this.nextStencilID+le>256&&this.clearStencil();let qe={};for(let Xe=0;Xe({u_sky_color:Be.properties.get(\"sky-color\"),u_horizon_color:Be.properties.get(\"horizon-color\"),u_horizon:(et.height/2+et.getHorizon())*We,u_sky_horizon_blend:Be.properties.get(\"sky-horizon-blend\")*et.height/2*We}))(Tt,ot.style.map.transform,ot.pixelRatio),Ir=new Po(Kt.LEQUAL,Po.ReadWrite,[0,1]),ve=Yo.disabled,be=ot.colorModeForRenderPass(),De=ot.useProgram(\"sky\");if(!Tt.mesh){let Be=new a.aX;Be.emplaceBack(-1,-1),Be.emplaceBack(1,-1),Be.emplaceBack(1,1),Be.emplaceBack(-1,1);let et=new a.aY;et.emplaceBack(0,1,2),et.emplaceBack(0,2,3),Tt.mesh=new Eu(Yt.createVertexBuffer(Be,vo.members),Yt.createIndexBuffer(et),a.a0.simpleSegment(0,0,Be.length,et.length))}De.draw(Yt,Kt.TRIANGLES,Ir,ve,be,Pa.disabled,xr,void 0,\"sky\",Tt.mesh.vertexBuffer,Tt.mesh.indexBuffer,Tt.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 ot=this.style._layers[Q[this.currentLayer]],Tt=ee[ot.source],Yt=le[ot.source];this._renderTileClippingMasks(ot,Yt),this.renderLayer(this,Tt,ot,Yt)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayerDe.source&&!De.isHidden(Yt)?[Tt.sourceCaches[De.source]]:[]),Ir=xr.filter(De=>De.getSource().type===\"vector\"),ve=xr.filter(De=>De.getSource().type!==\"vector\"),be=De=>{(!Kt||Kt.getSource().maxzoombe(De)),Kt||ve.forEach(De=>be(De)),Kt}(this.style,this.transform.zoom);ot&&function(Tt,Yt,Kt){for(let xr=0;xr0),ee&&(a.b0(B,Q),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.sourceCache.getRenderableTiles(),Ir=le.useProgram(\"terrainDepth\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"depth\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1});for(let ve of xr){let be=qe.getTerrainData(ve.tileID),De={u_matrix:le.transform.calculatePosMatrix(ve.tileID.toUnwrapped()),u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};Ir.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,De,be,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.height])}(this,this.style.map.terrain),function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.getCoordsTexture(),Ir=qe.sourceCache.getRenderableTiles(),ve=le.useProgram(\"terrainCoords\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"coords\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1}),qe.coordsIndex=[];for(let be of Ir){let De=qe.getTerrainData(be.tileID);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,xr.texture);let Be={u_matrix:le.transform.calculatePosMatrix(be.tileID.toUnwrapped()),u_terrain_coords_id:(255-qe.coordsIndex.length)/255,u_texture:0,u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};ve.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,Be,De,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments),qe.coordsIndex.push(be.tileID.key)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.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(le,qe,Xe,ot,Tt){if(le.renderPass!==\"translucent\")return;let Yt=Yo.disabled,Kt=le.colorModeForRenderPass();(Xe._unevaluatedLayout.hasValue(\"text-variable-anchor\")||Xe._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"))&&function(xr,Ir,ve,be,De,Be,et,We,it){let Ft=Ir.transform,Ht=yn(),tr=De===\"map\",dr=Be===\"map\";for(let Sr of xr){let Or=be.getTile(Sr),Wr=Or.getBucket(ve);if(!Wr||!Wr.text||!Wr.text.segments.get().length)continue;let ni=a.ag(Wr.textSizeData,Ft.zoom),Pi=In(Or,1,Ir.transform.zoom),cn=Br(Sr.posMatrix,dr,tr,Ir.transform,Pi),ln=ve.layout.get(\"icon-text-fit\")!==\"none\"&&Wr.hasIconData();if(ni){let Cn=Math.pow(2,Ft.zoom-Or.tileID.overscaledZ),Kn=Ir.style.map.terrain?(fa,$a)=>Ir.style.map.terrain.getElevation(Sr,fa,$a):null,Ta=Ht.translatePosition(Ft,Or,et,We);yf(Wr,tr,dr,it,Ft,cn,Sr.posMatrix,Cn,ni,ln,Ht,Ta,Sr.toUnwrapped(),Kn)}}}(ot,le,Xe,qe,Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Tt),Xe.paint.get(\"icon-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!1,Xe.paint.get(\"icon-translate\"),Xe.paint.get(\"icon-translate-anchor\"),Xe.layout.get(\"icon-rotation-alignment\"),Xe.layout.get(\"icon-pitch-alignment\"),Xe.layout.get(\"icon-keep-upright\"),Yt,Kt),Xe.paint.get(\"text-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!0,Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.layout.get(\"text-keep-upright\"),Yt,Kt),qe.map.showCollisionBoxes&&(Hu(le,qe,Xe,ot,!0),Hu(le,qe,Xe,ot,!1))})(w,B,Q,ee,this.style.placement.variableOffsets);break;case\"circle\":(function(le,qe,Xe,ot){if(le.renderPass!==\"translucent\")return;let Tt=Xe.paint.get(\"circle-opacity\"),Yt=Xe.paint.get(\"circle-stroke-width\"),Kt=Xe.paint.get(\"circle-stroke-opacity\"),xr=!Xe.layout.get(\"circle-sort-key\").isConstant();if(Tt.constantOr(1)===0&&(Yt.constantOr(1)===0||Kt.constantOr(1)===0))return;let Ir=le.context,ve=Ir.gl,be=le.depthModeForSublayer(0,Po.ReadOnly),De=Yo.disabled,Be=le.colorModeForRenderPass(),et=[];for(let We=0;WeWe.sortKey-it.sortKey);for(let We of et){let{programConfiguration:it,program:Ft,layoutVertexBuffer:Ht,indexBuffer:tr,uniformValues:dr,terrainData:Sr}=We.state;Ft.draw(Ir,ve.TRIANGLES,be,De,Be,Pa.disabled,dr,Sr,Xe.id,Ht,tr,We.segments,Xe.paint,le.transform.zoom,it)}})(w,B,Q,ee);break;case\"heatmap\":(function(le,qe,Xe,ot){if(Xe.paint.get(\"heatmap-opacity\")===0)return;let Tt=le.context;if(le.style.map.terrain){for(let Yt of ot){let Kt=qe.getTile(Yt);qe.hasRenderableParent(Yt)||(le.renderPass===\"offscreen\"?_f(le,Kt,Xe,Yt):le.renderPass===\"translucent\"&&Yc(le,Xe,Yt))}Tt.viewport.set([0,0,le.width,le.height])}else le.renderPass===\"offscreen\"?function(Yt,Kt,xr,Ir){let ve=Yt.context,be=ve.gl,De=Yo.disabled,Be=new qs([be.ONE,be.ONE],a.aM.transparent,[!0,!0,!0,!0]);(function(et,We,it){let Ft=et.gl;et.activeTexture.set(Ft.TEXTURE1),et.viewport.set([0,0,We.width/4,We.height/4]);let Ht=it.heatmapFbos.get(a.aU);Ht?(Ft.bindTexture(Ft.TEXTURE_2D,Ht.colorAttachment.get()),et.bindFramebuffer.set(Ht.framebuffer)):(Ht=eh(et,We.width/4,We.height/4),it.heatmapFbos.set(a.aU,Ht))})(ve,Yt,xr),ve.clear({color:a.aM.transparent});for(let et=0;et20&&Yt.texParameterf(Yt.TEXTURE_2D,Tt.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,Tt.extTextureFilterAnisotropicMax);let Wr=le.style.map.terrain&&le.style.map.terrain.getTerrainData(et),ni=Wr?et:null,Pi=ni?ni.posMatrix:le.transform.calculatePosMatrix(et.toUnwrapped(),Be),cn=cl(Pi,Sr||[0,0],dr||1,tr,Xe);Kt instanceof Gt?xr.draw(Tt,Yt.TRIANGLES,We,Yo.disabled,Ir,Pa.disabled,cn,Wr,Xe.id,Kt.boundsBuffer,le.quadTriangleIndexBuffer,Kt.boundsSegments):xr.draw(Tt,Yt.TRIANGLES,We,ve[et.overscaledZ],Ir,Pa.disabled,cn,Wr,Xe.id,le.rasterBoundsBuffer,le.quadTriangleIndexBuffer,le.rasterBoundsSegments)}})(w,B,Q,ee);break;case\"background\":(function(le,qe,Xe,ot){let Tt=Xe.paint.get(\"background-color\"),Yt=Xe.paint.get(\"background-opacity\");if(Yt===0)return;let Kt=le.context,xr=Kt.gl,Ir=le.transform,ve=Ir.tileSize,be=Xe.paint.get(\"background-pattern\");if(le.isPatternMissing(be))return;let De=!be&&Tt.a===1&&Yt===1&&le.opaquePassEnabledForLayer()?\"opaque\":\"translucent\";if(le.renderPass!==De)return;let Be=Yo.disabled,et=le.depthModeForSublayer(0,De===\"opaque\"?Po.ReadWrite:Po.ReadOnly),We=le.colorModeForRenderPass(),it=le.useProgram(be?\"backgroundPattern\":\"background\"),Ft=ot||Ir.coveringTiles({tileSize:ve,terrain:le.style.map.terrain});be&&(Kt.activeTexture.set(xr.TEXTURE0),le.imageManager.bind(le.context));let Ht=Xe.getCrossfadeParameters();for(let tr of Ft){let dr=ot?tr.posMatrix:le.transform.calculatePosMatrix(tr.toUnwrapped()),Sr=be?Su(dr,Yt,le,be,{tileID:tr,tileSize:ve},Ht):Zl(dr,Yt,Tt),Or=le.style.map.terrain&&le.style.map.terrain.getTerrainData(tr);it.draw(Kt,xr.TRIANGLES,et,Be,We,Pa.disabled,Sr,Or,Xe.id,le.tileExtentBuffer,le.quadTriangleIndexBuffer,le.tileExtentSegments)}})(w,0,Q,ee);break;case\"custom\":(function(le,qe,Xe){let ot=le.context,Tt=Xe.implementation;if(le.renderPass===\"offscreen\"){let Yt=Tt.prerender;Yt&&(le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),Yt.call(Tt,ot.gl,le.transform.customLayerMatrix()),ot.setDirty(),le.setBaseState())}else if(le.renderPass===\"translucent\"){le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),ot.setStencilMode(Yo.disabled);let Yt=Tt.renderingMode===\"3d\"?new Po(le.context.gl.LEQUAL,Po.ReadWrite,le.depthRangeFor3D):le.depthModeForSublayer(0,Po.ReadOnly);ot.setDepthMode(Yt),Tt.render(ot.gl,le.transform.customLayerMatrix(),{farZ:le.transform.farZ,nearZ:le.transform.nearZ,fov:le.transform._fov,modelViewProjectionMatrix:le.transform.modelViewProjectionMatrix,projectionMatrix:le.transform.projectionMatrix}),ot.setDirty(),le.setBaseState(),ot.bindFramebuffer.set(null)}})(w,0,Q)}}translatePosMatrix(w,B,Q,ee,le){if(!Q[0]&&!Q[1])return w;let qe=le?ee===\"map\"?this.transform.angle:0:ee===\"viewport\"?-this.transform.angle:0;if(qe){let Tt=Math.sin(qe),Yt=Math.cos(qe);Q=[Q[0]*Yt-Q[1]*Tt,Q[0]*Tt+Q[1]*Yt]}let Xe=[le?Q[0]:In(B,Q[0],this.transform.zoom),le?Q[1]:In(B,Q[1],this.transform.zoom),0],ot=new Float32Array(16);return a.J(ot,w,Xe),ot}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 hn(this.context,jn[w],B,nc[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 g(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 ks{constructor(w,B){this.points=w,this.planes=B}static fromInvProjectionMatrix(w,B,Q){let ee=Math.pow(2,Q),le=[[-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(Xe=>{let ot=1/(Xe=a.af([],Xe,w))[3]/B*ee;return a.b1(Xe,Xe,[ot,ot,1/Xe[3],ot])}),qe=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(Xe=>{let ot=function(xr,Ir){var ve=Ir[0],be=Ir[1],De=Ir[2],Be=ve*ve+be*be+De*De;return Be>0&&(Be=1/Math.sqrt(Be)),xr[0]=Ir[0]*Be,xr[1]=Ir[1]*Be,xr[2]=Ir[2]*Be,xr}([],function(xr,Ir,ve){var be=Ir[0],De=Ir[1],Be=Ir[2],et=ve[0],We=ve[1],it=ve[2];return xr[0]=De*it-Be*We,xr[1]=Be*et-be*it,xr[2]=be*We-De*et,xr}([],L([],le[Xe[0]],le[Xe[1]]),L([],le[Xe[2]],le[Xe[1]]))),Tt=-((Yt=ot)[0]*(Kt=le[Xe[1]])[0]+Yt[1]*Kt[1]+Yt[2]*Kt[2]);var Yt,Kt;return ot.concat(Tt)});return new ks(le,qe)}}class bc{constructor(w,B){this.min=w,this.max=B,this.center=function(Q,ee,le){return Q[0]=.5*ee[0],Q[1]=.5*ee[1],Q[2]=.5*ee[2],Q}([],function(Q,ee,le){return Q[0]=ee[0]+le[0],Q[1]=ee[1]+le[1],Q[2]=ee[2]+le[2],Q}([],this.min,this.max))}quadrant(w){let B=[w%2==0,w<2],Q=E(this.min),ee=E(this.max);for(let le=0;le=0&&qe++;if(qe===0)return 0;qe!==B.length&&(Q=!1)}if(Q)return 2;for(let ee=0;ee<3;ee++){let le=Number.MAX_VALUE,qe=-Number.MAX_VALUE;for(let Xe=0;Xethis.max[ee]-this.min[ee])return 0}return 1}}class hu{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 hu(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}let _u=85.051129;class nl{constructor(w,B,Q,ee,le){this.tileSize=512,this._renderWorldCopies=le===void 0||!!le,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 hu,this._posMatrixCache={},this._alignedPosMatrixCache={},this._fogMatrixCache={},this.minElevationForCurrentTile=0}clone(){let w=new nl(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,le){var qe=ee[0],Xe=ee[1],ot=ee[2],Tt=ee[3],Yt=Math.sin(le),Kt=Math.cos(le);Q[0]=qe*Kt+ot*Yt,Q[1]=Xe*Kt+Tt*Yt,Q[2]=qe*-Yt+ot*Kt,Q[3]=Xe*-Yt+Tt*Kt}(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)),le=this.pointCoordinate(new a.P(this.width,this.height)),qe=this.pointCoordinate(new a.P(0,this.height)),Xe=Math.floor(Math.min(Q.x,ee.x,le.x,qe.x)),ot=Math.floor(Math.max(Q.x,ee.x,le.x,qe.x)),Tt=1;for(let Yt=Xe-Tt;Yt<=ot+Tt;Yt++)Yt!==0&&B.push(new a.b4(Yt,w))}return B}coveringTiles(w){var B,Q;let ee=this.coveringZoomLevel(w),le=ee;if(w.minzoom!==void 0&&eew.maxzoom&&(ee=w.maxzoom);let qe=this.pointCoordinate(this.getCameraPoint()),Xe=a.Z.fromLngLat(this.center),ot=Math.pow(2,ee),Tt=[ot*qe.x,ot*qe.y,0],Yt=[ot*Xe.x,ot*Xe.y,0],Kt=ks.fromInvProjectionMatrix(this.invModelViewProjectionMatrix,this.worldSize,ee),xr=w.minzoom||0;!w.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(xr=ee);let Ir=w.terrain?2/Math.min(this.tileSize,w.tileSize)*this.tileSize:3,ve=We=>({aabb:new bc([We*ot,0,0],[(We+1)*ot,ot,0]),zoom:0,x:0,y:0,wrap:We,fullyVisible:!1}),be=[],De=[],Be=ee,et=w.reparseOverscaled?le:ee;if(this._renderWorldCopies)for(let We=1;We<=3;We++)be.push(ve(-We)),be.push(ve(We));for(be.push(ve(0));be.length>0;){let We=be.pop(),it=We.x,Ft=We.y,Ht=We.fullyVisible;if(!Ht){let Wr=We.aabb.intersects(Kt);if(Wr===0)continue;Ht=Wr===2}let tr=w.terrain?Tt:Yt,dr=We.aabb.distanceX(tr),Sr=We.aabb.distanceY(tr),Or=Math.max(Math.abs(dr),Math.abs(Sr));if(We.zoom===Be||Or>Ir+(1<=xr){let Wr=Be-We.zoom,ni=Tt[0]-.5-(it<>1),cn=We.zoom+1,ln=We.aabb.quadrant(Wr);if(w.terrain){let Cn=new a.S(cn,We.wrap,cn,ni,Pi),Kn=w.terrain.getMinMaxElevation(Cn),Ta=(B=Kn.minElevation)!==null&&B!==void 0?B:this.elevation,fa=(Q=Kn.maxElevation)!==null&&Q!==void 0?Q:this.elevation;ln=new bc([ln.min[0],ln.min[1],Ta],[ln.max[0],ln.max[1],fa])}be.push({aabb:ln,zoom:cn,x:ni,y:Pi,wrap:We.wrap,fullyVisible:Ht})}}return De.sort((We,it)=>We.distanceSq-it.distanceSq).map(We=>We.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,_u);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),le=w.getElevationForLngLatZoom(ee,this.tileZoom);if(!(this.elevation-le))return;let qe=Q+B-le,Xe=Math.cos(this._pitch)*this.cameraToCenterDistance/qe/a.b5(1,ee.lat),ot=this.scaleZoom(Xe/this.tileSize);this._elevation=le,this._center=ee,this.zoom=ot}setLocationAtPoint(w,B){let Q=this.pointCoordinate(B),ee=this.pointCoordinate(this.centerPoint),le=this.locationCoordinate(w),qe=new a.Z(le.x-(Q.x-ee.x),le.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 xr=B.pointCoordinate(w);if(xr!=null)return xr}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 le=Q[3],qe=ee[3],Xe=Q[1]/le,ot=ee[1]/qe,Tt=Q[2]/le,Yt=ee[2]/qe,Kt=Tt===Yt?0:(0-Tt)/(Yt-Tt);return new a.Z(a.y.number(Q[0]/le,ee[0]/qe,Kt)/this.worldSize,a.y.number(Xe,ot,Kt)/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,_u])}calculateTileMatrix(w){let B=w.canonical,Q=this.worldSize/this.zoomScale(B.z),ee=B.x+Math.pow(2,B.z)*w.wrap,le=a.an(new Float64Array(16));return a.J(le,le,[ee*Q,B.y*Q,0]),a.K(le,le,[Q/a.X,Q/a.X,1]),le}calculatePosMatrix(w,B=!1){let Q=w.key,ee=B?this._alignedPosMatrixCache:this._posMatrixCache;if(ee[Q])return ee[Q];let le=this.calculateTileMatrix(w);return a.L(le,B?this.alignedModelViewProjectionMatrix:this.modelViewProjectionMatrix,le),ee[Q]=new Float32Array(le),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 We=179.9999999999;ee=[-We,We]}let le=this.tileSize*this.zoomScale(Q.zoom),qe=0,Xe=le,ot=0,Tt=le,Yt=0,Kt=0,{x:xr,y:Ir}=this.size;if(this.latRange){let We=this.latRange;qe=a.Q(We[1])*le,Xe=a.Q(We[0])*le,Xe-qeXe&&(Be=Xe-We)}if(ee){let We=(ot+Tt)/2,it=ve;this._renderWorldCopies&&(it=a.b3(ve,We-le/2,We+le/2));let Ft=xr/2;it-FtTt&&(De=Tt-Ft)}if(De!==void 0||Be!==void 0){let We=new a.P(De!=null?De:ve,Be!=null?Be:be);Q.center=this.unproject.call({worldSize:le},We).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 le=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),qe=Math.min(this.elevation,this.minElevationForCurrentTile),Xe=le-qe*this._pixelPerMeter/Math.cos(this._pitch),ot=qe<0?Xe:le,Tt=Math.PI/2+this._pitch,Yt=this._fov*(.5+w.y/this.height),Kt=Math.sin(Yt)*ot/Math.sin(a.ac(Math.PI-Tt-Yt,.01,Math.PI-.01)),xr=this.getHorizon(),Ir=2*Math.atan(xr/this.cameraToCenterDistance)*(.5+w.y/(2*xr)),ve=Math.sin(Ir)*ot/Math.sin(a.ac(Math.PI-Tt-Ir,.01,Math.PI-.01)),be=Math.min(Kt,ve);this.farZ=1.01*(Math.cos(Math.PI/2-this._pitch)*be+ot),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,le,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 De=this.width%2/2,Be=this.height%2/2,et=Math.cos(this.angle),We=Math.sin(this.angle),it=B-Math.round(B)+et*De+We*Be,Ft=Q-Math.round(Q)+et*Be+We*De,Ht=new Float64Array(ee);if(a.J(Ht,Ht,[it>.5?it-1:it,Ft>.5?Ft-1:Ft,0]),this.alignedModelViewProjectionMatrix=Ht,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,le=B.x,qe=B.y;for(let Xe of w)Q=Math.min(Q,Xe.x),ee=Math.min(ee,Xe.y),le=Math.max(le,Xe.x),qe=Math.max(qe,Xe.y);return[new a.P(Q,ee),new a.P(le,ee),new a.P(le,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 nh(ue,w){let B,Q=!1,ee=null,le=null,qe=()=>{ee=null,Q&&(ue.apply(le,B),ee=setTimeout(qe,w),Q=!1)};return(...Xe)=>(Q=!0,le=this,B=Xe,ee||qe(),ee)}class Ah{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 le=window.location.hash.replace(ee,\"\");le.startsWith(\"#&\")?le=le.slice(0,1)+le.slice(2):le===\"#\"&&(le=\"\");let qe=window.location.href.replace(/(#.+)?$/,le);qe=qe.replace(\"&&\",\"&\"),window.history.replaceState(window.history.state,null,qe)},this._updateHash=nh(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),le=Math.pow(10,ee),qe=Math.round(B.lng*le)/le,Xe=Math.round(B.lat*le)/le,ot=this._map.getBearing(),Tt=this._map.getPitch(),Yt=\"\";if(Yt+=w?`/${qe}/${Xe}/${Q}`:`${Q}/${Xe}/${qe}`,(ot||Tt)&&(Yt+=\"/\"+Math.round(10*ot)/10),Tt&&(Yt+=`/${Math.round(Tt)}`),this._hashName){let Kt=this._hashName,xr=!1,Ir=window.location.hash.slice(1).split(\"&\").map(ve=>{let be=ve.split(\"=\")[0];return be===Kt?(xr=!0,`${be}=${Yt}`):ve}).filter(ve=>ve);return xr||Ir.push(`${Kt}=${Yt}`),`#${Ir.join(\"&\")}`}return`#${Yt}`}}let zu={linearity:.3,easing:a.b8(0,0,.3,1)},Fc=a.e({deceleration:2500,maxSpeed:1400},zu),wc=a.e({deceleration:20,maxSpeed:1400},zu),bd=a.e({deceleration:1e3,maxSpeed:360},zu),xf=a.e({deceleration:1e3,maxSpeed:90},zu);class Pf{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:le}of this._inertiaBuffer)B.zoom+=le.zoomDelta||0,B.bearing+=le.bearingDelta||0,B.pitch+=le.pitchDelta||0,le.panDelta&&B.pan._add(le.panDelta),le.around&&(B.around=le.around),le.pinchAround&&(B.pinchAround=le.pinchAround);let Q=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,ee={};if(B.pan.mag()){let le=bf(B.pan.mag(),Q,a.e({},Fc,w||{}));ee.offset=B.pan.mult(le.amount/B.pan.mag()),ee.center=this._map.transform.center,Ou(ee,le)}if(B.zoom){let le=bf(B.zoom,Q,wc);ee.zoom=this._map.transform.zoom+le.amount,Ou(ee,le)}if(B.bearing){let le=bf(B.bearing,Q,bd);ee.bearing=this._map.transform.bearing+a.ac(le.amount,-179,179),Ou(ee,le)}if(B.pitch){let le=bf(B.pitch,Q,xf);ee.pitch=this._map.transform.pitch+le.amount,Ou(ee,le)}if(ee.zoom||ee.bearing){let le=B.pinchAround===void 0?B.around:B.pinchAround;ee.around=le?this._map.unproject(le):this._map.getCenter()}return this.clear(),a.e(ee,{noMoveStart:!0})}}function Ou(ue,w){(!ue.duration||ue.durationB.unproject(ot)),Xe=le.reduce((ot,Tt,Yt,Kt)=>ot.add(Tt.div(Kt.length)),new a.P(0,0));super(w,{points:le,point:Xe,lngLats:qe,lngLat:B.unproject(Xe),originalEvent:Q}),this._defaultPrevented=!1}}class Hh extends a.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(w,B,Q){super(w,{originalEvent:Q}),this._defaultPrevented=!1}}class If{constructor(w,B){this._map=w,this._clickTolerance=B.clickTolerance}reset(){delete this._mousedownPos}wheel(w){return this._firePreventable(new Hh(w.type,this._map,w))}mousedown(w,B){return this._mousedownPos=B,this._firePreventable(new jl(w.type,this._map,w))}mouseup(w){this._map.fire(new jl(w.type,this._map,w))}click(w,B){this._mousedownPos&&this._mousedownPos.dist(B)>=this._clickTolerance||this._map.fire(new jl(w.type,this._map,w))}dblclick(w){return this._firePreventable(new jl(w.type,this._map,w))}mouseover(w){this._map.fire(new jl(w.type,this._map,w))}mouseout(w){this._map.fire(new jl(w.type,this._map,w))}touchstart(w){return this._firePreventable(new lf(w.type,this._map,w))}touchmove(w){this._map.fire(new lf(w.type,this._map,w))}touchend(w){this._map.fire(new lf(w.type,this._map,w))}touchcancel(w){this._map.fire(new lf(w.type,this._map,w))}_firePreventable(w){if(this._map.fire(w),w.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Cs{constructor(w){this._map=w}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(w){this._map.fire(new jl(w.type,this._map,w))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new jl(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(w){this._delayContextMenu?this._contextMenuEvent=w:this._ignoreContextMenu||this._map.fire(new jl(w.type,this._map,w)),this._map.listens(\"contextmenu\")&&w.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class du{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 ku{constructor(w,B){this._map=w,this._tr=new du(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)le.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 Wf(ue,w){if(ue.length!==w.length)throw new Error(`The number of touches and points are not equal - touches ${ue.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 le=new a.P(0,0);for(let qe of ee)le._add(qe);return le.div(ee.length)}(B),this.touches=Wf(Q,B)))}touchmove(w,B,Q){if(this.aborted||!this.centroid)return;let ee=Wf(Q,B);for(let le in this.touches){let qe=ee[le];(!qe||qe.dist(this.touches[le])>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 wf{constructor(w){this.singleTap=new Us(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 le=w.timeStamp-this.lastTime<500,qe=!this.lastTap||this.lastTap.dist(ee)<30;if(le&&qe||this.reset(),this.count++,this.lastTime=w.timeStamp,this.lastTap=ee,this.count===this.numTaps)return this.reset(),ee}}}class zc{constructor(w){this._tr=new du(w),this._zoomIn=new wf({numTouches:1,numTaps:2}),this._zoomOut=new wf({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),le=this._zoomOut.touchend(w,B,Q),qe=this._tr;return ee?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom+1,around:qe.unproject(ee)},{originalEvent:w})}):le?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom-1,around:qe.unproject(le)},{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 Wu{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){ue.mousedown=ue.dragStart,ue.mousemoveWindow=ue.dragMove,ue.mouseup=ue.dragEnd,ue.contextmenu=w=>{w.preventDefault()}},Wl=({enable:ue,clickTolerance:w,bearingDegreesPerPixelMoved:B=.8})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({bearingDelta:(le.x-ee.x)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})},ah=({enable:ue,clickTolerance:w,pitchDegreesPerPixelMoved:B=-.5})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({pitchDelta:(le.y-ee.y)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})};class Zu{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=Wf(Q,B),le=new a.P(0,0),qe=new a.P(0,0),Xe=0;for(let Tt in ee){let Yt=ee[Tt],Kt=this._touches[Tt];Kt&&(le._add(Yt),qe._add(Yt.sub(Kt)),Xe++,ee[Tt]=Yt)}if(this._touches=ee,this._shouldBePrevented(Xe)||!qe.mag())return;let ot=qe.div(Xe);return this._sum._add(ot),this._sum.mag()Math.abs(ue.x)}class Bc extends Oc{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,fc(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]),le=w[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(ee,le,Q.timeStamp),this._valid?(this._lastPoints=w,this._active=!0,{pitchDelta:(ee.y+le.y)/2*-.5}):void 0}gestureBeginsVertically(w,B,Q){if(this._valid!==void 0)return this._valid;let ee=w.mag()>=2,le=B.mag()>=2;if(!ee&&!le)return;if(!ee||!le)return this._firstMove===void 0&&(this._firstMove=Q),Q-this._firstMove<100&&void 0;let qe=w.y>0==B.y>0;return fc(w)&&fc(B)&&qe}}let At={panStep:100,bearingStep:15,pitchStep:10};class Wt{constructor(w){this._tr=new du(w);let B=At;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,le=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(),le=-1);break;case 39:w.shiftKey?Q=1:(w.preventDefault(),le=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:Xe=>{let ot=this._tr;Xe.easeTo({duration:300,easeId:\"keyboardHandler\",easing:Cr,zoom:B?Math.round(ot.zoom)+B*(w.shiftKey?2:1):ot.zoom,bearing:ot.bearing+Q*this._bearingStep,pitch:ot.pitch+ee*this._pitchStep,offset:[-le*this._panStep,-qe*this._panStep],center:ot.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 Cr(ue){return ue*(2-ue)}let Ar=4.000244140625;class Kr{constructor(w,B){this._onTimeout=Q=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(Q)},this._map=w,this._tr=new du(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%Ar==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 ot=this._type===\"wheel\"&&Math.abs(this._delta)>Ar?this._wheelZoomRate:this._defaultZoomRate,Tt=2/(1+Math.exp(-Math.abs(this._delta*ot)));this._delta<0&&Tt!==0&&(Tt=1/Tt);let Yt=typeof this._targetZoom==\"number\"?w.zoomScale(this._targetZoom):w.scale;this._targetZoom=Math.min(w.maxZoom,Math.max(w.minZoom,w.scaleZoom(Yt*Tt))),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,le,qe=!1,Xe=u.now()-this._lastWheelEventTime;if(this._type===\"wheel\"&&Q&&ee&&Xe){let ot=Math.min(Xe/200,1),Tt=ee(ot);le=a.y.number(Q,B,Tt),ot<1?this._frameId||(this._frameId=!0):qe=!0}else le=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:le-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,le=Q.easing(ee+.01)-Q.easing(ee),qe=.27/Math.sqrt(le*le+1e-4)*.01,Xe=Math.sqrt(.0729-qe*qe);B=a.b8(qe,Xe,.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 ki{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 du(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 dn{constructor(){this._tap=new wf({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],le=w.timeStamp-this._tapTime<500,qe=this._tapPoint.dist(ee)<30;le&&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],le=ee.y-this._swipePoint.y;return this._swipePoint=ee,w.preventDefault(),this._active=!0,{zoomDelta:le/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 wn{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 Nn{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 Yi{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 le=document.createElement(\"div\");le.className=\"maplibregl-mobile-message\",le.textContent=Q,this._container.appendChild(le),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 on=ue=>ue.zoom||ue.drag||ue.pitch||ue.rotate;class Fi extends a.k{}function $n(ue){return ue.panDelta&&ue.panDelta.mag()||ue.zoomDelta||ue.bearingDelta||ue.pitchDelta}class Ca{constructor(w,B){this.handleWindowEvent=ee=>{this.handleEvent(ee,`${ee.type}Window`)},this.handleEvent=(ee,le)=>{if(ee.type===\"blur\")return void this.stop(!0);this._updatingCamera=!0;let qe=ee.type===\"renderFrame\"?void 0:ee,Xe={needsRenderFrame:!1},ot={},Tt={},Yt=ee.touches,Kt=Yt?this._getMapTouches(Yt):void 0,xr=Kt?c.touchPos(this._map.getCanvas(),Kt):c.mousePos(this._map.getCanvas(),ee);for(let{handlerName:be,handler:De,allowed:Be}of this._handlers){if(!De.isEnabled())continue;let et;this._blockedByActive(Tt,Be,be)?De.reset():De[le||ee.type]&&(et=De[le||ee.type](ee,xr,Kt),this.mergeHandlerResult(Xe,ot,et,be,qe),et&&et.needsRenderFrame&&this._triggerRenderFrame()),(et||De.isActive())&&(Tt[be]=De)}let Ir={};for(let be in this._previousActiveHandlers)Tt[be]||(Ir[be]=qe);this._previousActiveHandlers=Tt,(Object.keys(Ir).length||$n(Xe))&&(this._changes.push([Xe,ot,Ir]),this._triggerRenderFrame()),(Object.keys(Tt).length||$n(Xe))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:ve}=Xe;ve&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],ve(this._map))},this._map=w,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Pf(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,le,qe]of this._listeners)c.addEventListener(ee,le,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 If(B,w));let ee=B.boxZoom=new ku(B,w);this._add(\"boxZoom\",ee),w.interactive&&w.boxZoom&&ee.enable();let le=B.cooperativeGestures=new Qi(B,w.cooperativeGestures);this._add(\"cooperativeGestures\",le),w.cooperativeGestures&&le.enable();let qe=new zc(B),Xe=new Xi(B);B.doubleClickZoom=new ki(Xe,qe),this._add(\"tapZoom\",qe),this._add(\"clickZoom\",Xe),w.interactive&&w.doubleClickZoom&&B.doubleClickZoom.enable();let ot=new dn;this._add(\"tapDragZoom\",ot);let Tt=B.touchPitch=new Bc(B);this._add(\"touchPitch\",Tt),w.interactive&&w.touchPitch&&B.touchPitch.enable(w.touchPitch);let Yt=Wl(w),Kt=ah(w);B.dragRotate=new Nn(w,Yt,Kt),this._add(\"mouseRotate\",Yt,[\"mousePitch\"]),this._add(\"mousePitch\",Kt,[\"mouseRotate\"]),w.interactive&&w.dragRotate&&B.dragRotate.enable();let xr=(({enable:et,clickTolerance:We})=>{let it=new Xu({checkCorrectEvent:Ft=>c.mouseButton(Ft)===0&&!Ft.ctrlKey});return new Wu({clickTolerance:We,move:(Ft,Ht)=>({around:Ht,panDelta:Ht.sub(Ft)}),activateOnStart:!0,moveStateManager:it,enable:et,assignEvents:Xf})})(w),Ir=new Zu(w,B);B.dragPan=new wn(Q,xr,Ir),this._add(\"mousePan\",xr),this._add(\"touchPan\",Ir,[\"touchZoom\",\"touchRotate\"]),w.interactive&&w.dragPan&&B.dragPan.enable(w.dragPan);let ve=new cf,be=new vu;B.touchZoomRotate=new Yi(Q,be,ve,ot),this._add(\"touchRotate\",ve,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",be,[\"touchPan\",\"touchRotate\"]),w.interactive&&w.touchZoomRotate&&B.touchZoomRotate.enable(w.touchZoomRotate);let De=B.scrollZoom=new Kr(B,()=>this._triggerRenderFrame());this._add(\"scrollZoom\",De,[\"mousePan\"]),w.interactive&&w.scrollZoom&&B.scrollZoom.enable(w.scrollZoom);let Be=B.keyboard=new Wt(B);this._add(\"keyboard\",Be),w.interactive&&w.keyboard&&B.keyboard.enable(),this._add(\"blockableMapEvent\",new Cs(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!!on(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,le){if(!Q)return;a.e(w,Q);let qe={handlerName:ee,originalEvent:Q.originalEvent||le};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,le,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,le),a.e(Q,qe);this._updateMapTransform(w,B,Q),this._changes=[]}_updateMapTransform(w,B,Q){let ee=this._map,le=ee._getTransformForUpdate(),qe=ee.terrain;if(!($n(w)||qe&&this._terrainMovement))return this._fireEvents(B,Q,!0);let{panDelta:Xe,zoomDelta:ot,bearingDelta:Tt,pitchDelta:Yt,around:Kt,pinchAround:xr}=w;xr!==void 0&&(Kt=xr),ee._stop(!0),Kt=Kt||ee.transform.centerPoint;let Ir=le.pointLocation(Xe?Kt.sub(Xe):Kt);Tt&&(le.bearing+=Tt),Yt&&(le.pitch+=Yt),ot&&(le.zoom+=ot),qe?this._terrainMovement||!B.drag&&!B.zoom?B.drag&&this._terrainMovement?le.center=le.pointLocation(le.centerPoint.sub(Xe)):le.setLocationAtPoint(Ir,Kt):(this._terrainMovement=!0,this._map._elevationFreeze=!0,le.setLocationAtPoint(Ir,Kt)):le.setLocationAtPoint(Ir,Kt),ee._applyUpdatedTransform(le),this._map._update(),w.noInertia||this._inertia.record(w),this._fireEvents(B,Q,!0)}_fireEvents(w,B,Q){let ee=on(this._eventsInProgress),le=on(w),qe={};for(let Kt in w){let{originalEvent:xr}=w[Kt];this._eventsInProgress[Kt]||(qe[`${Kt}start`]=xr),this._eventsInProgress[Kt]=w[Kt]}!ee&&le&&this._fireEvent(\"movestart\",le.originalEvent);for(let Kt in qe)this._fireEvent(Kt,qe[Kt]);le&&this._fireEvent(\"move\",le.originalEvent);for(let Kt in w){let{originalEvent:xr}=w[Kt];this._fireEvent(Kt,xr)}let Xe={},ot;for(let Kt in this._eventsInProgress){let{handlerName:xr,originalEvent:Ir}=this._eventsInProgress[Kt];this._handlersById[xr].isActive()||(delete this._eventsInProgress[Kt],ot=B[xr]||Ir,Xe[`${Kt}end`]=ot)}for(let Kt in Xe)this._fireEvent(Kt,Xe[Kt]);let Tt=on(this._eventsInProgress),Yt=(ee||le)&&!Tt;if(Yt&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;let Kt=this._map._getTransformForUpdate();Kt.recalculateZoom(this._map.terrain),this._map._applyUpdatedTransform(Kt)}if(Q&&Yt){this._updatingCamera=!0;let Kt=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),xr=Ir=>Ir!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Fi(\"renderFrame\",{timeStamp:w})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Ra 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(le,De,tr)),this._rotating&&(ee.bearing=a.y.number(qe,Tt,tr)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,tr)),this._padding&&(ee.interpolatePadding(ot,Kt,tr),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(tr),it)ee.setLocationAtPoint(it,Ft);else{let dr=ee.zoomScale(ee.zoom-le),Sr=De>le?Math.min(2,We):Math.max(.5,We),Or=Math.pow(Sr,1-tr),Wr=ee.unproject(Be.add(et.mult(tr*Or)).mult(dr));ee.setLocationAtPoint(ee.renderWorldCopies?Wr.wrap():Wr,Ir)}this._applyUpdatedTransform(ee),this._fireMoveEvents(B)},tr=>{this.terrain&&w.freezeElevation&&this._finalizeElevation(),this._afterEase(B,tr)},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 le=Q.clone(),{center:qe,zoom:Xe,pitch:ot,bearing:Tt,elevation:Yt}=ee(le);qe&&(le.center=qe),Xe!==void 0&&(le.zoom=Xe),ot!==void 0&&(le.pitch=ot),Tt!==void 0&&(le.bearing=Tt),Yt!==void 0&&(le.elevation=Yt),Q.apply(le)}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,le=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)),le&&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 Cn=a.M(w,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(Cn,B)}this.stop(),w=a.e({offset:[0,0],speed:1.2,curve:1.42,easing:a.b9},w);let ee=this._getTransformForUpdate(),le=ee.zoom,qe=ee.bearing,Xe=ee.pitch,ot=ee.padding,Tt=\"bearing\"in w?this._normalizeBearing(w.bearing,qe):qe,Yt=\"pitch\"in w?+w.pitch:Xe,Kt=\"padding\"in w?w.padding:ee.padding,xr=a.P.convert(w.offset),Ir=ee.centerPoint.add(xr),ve=ee.pointLocation(Ir),{center:be,zoom:De}=ee.getConstrained(a.N.convert(w.center||ve),(Q=w.zoom)!==null&&Q!==void 0?Q:le);this._normalizeCenter(be,ee);let Be=ee.zoomScale(De-le),et=ee.project(ve),We=ee.project(be).sub(et),it=w.curve,Ft=Math.max(ee.width,ee.height),Ht=Ft/Be,tr=We.mag();if(\"minZoom\"in w){let Cn=a.ac(Math.min(w.minZoom,le,De),ee.minZoom,ee.maxZoom),Kn=Ft/ee.zoomScale(Cn-le);it=Math.sqrt(Kn/tr*2)}let dr=it*it;function Sr(Cn){let Kn=(Ht*Ht-Ft*Ft+(Cn?-1:1)*dr*dr*tr*tr)/(2*(Cn?Ht:Ft)*dr*tr);return Math.log(Math.sqrt(Kn*Kn+1)-Kn)}function Or(Cn){return(Math.exp(Cn)-Math.exp(-Cn))/2}function Wr(Cn){return(Math.exp(Cn)+Math.exp(-Cn))/2}let ni=Sr(!1),Pi=function(Cn){return Wr(ni)/Wr(ni+it*Cn)},cn=function(Cn){return Ft*((Wr(ni)*(Or(Kn=ni+it*Cn)/Wr(Kn))-Or(ni))/dr)/tr;var Kn},ln=(Sr(!0)-ni)/it;if(Math.abs(tr)<1e-6||!isFinite(ln)){if(Math.abs(Ft-Ht)<1e-6)return this.easeTo(w,B);let Cn=Ht0,Pi=Kn=>Math.exp(Cn*it*Kn)}return w.duration=\"duration\"in w?+w.duration:1e3*ln/(\"screenSpeed\"in w?+w.screenSpeed/it:+w.speed),w.maxDuration&&w.duration>w.maxDuration&&(w.duration=0),this._zooming=!0,this._rotating=qe!==Tt,this._pitching=Yt!==Xe,this._padding=!ee.isPaddingEqual(Kt),this._prepareEase(B,!1),this.terrain&&this._prepareElevation(be),this._ease(Cn=>{let Kn=Cn*ln,Ta=1/Pi(Kn);ee.zoom=Cn===1?De:le+ee.scaleZoom(Ta),this._rotating&&(ee.bearing=a.y.number(qe,Tt,Cn)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,Cn)),this._padding&&(ee.interpolatePadding(ot,Kt,Cn),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(Cn);let fa=Cn===1?be:ee.unproject(et.add(We.mult(cn(Kn))).mult(Ta));ee.setLocationAtPoint(ee.renderWorldCopies?fa.wrap():fa,Ir),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 La={compact:!0,customAttribution:'MapLibre'};class Na{constructor(w=La){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 le=B[ee];if(le.used||le.usedForTerrain){let qe=le.getSource();qe.attribution&&w.indexOf(qe.attribution)<0&&w.push(qe.attribution)}}w=w.filter(ee=>String(ee).trim()),w.sort((ee,le)=>ee.length-le.length),w=w.filter((ee,le)=>{for(let qe=le+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 Yn{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 Dn{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 Ka=a.Y([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class bo 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 Vt(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 le=w.clone();le.posMatrix=new Float64Array(16),a.aP(le.posMatrix,0,a.X,0,a.X,0,1),B[Q]=le}else if(ee.canonical.isChildOf(w.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=ee.canonical.z-w.canonical.z,Xe=ee.canonical.x-(ee.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,Tt,0,Tt,0,1),a.J(le.posMatrix,le.posMatrix,[-Xe*Tt,-ot*Tt,0]),B[Q]=le}else if(w.canonical.isChildOf(ee.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=w.canonical.z-ee.canonical.z,Xe=w.canonical.x-(w.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,a.X,0,a.X,0,1),a.J(le.posMatrix,le.posMatrix,[Xe*Tt,ot*Tt,0]),a.K(le.posMatrix,le.posMatrix,[1/2**qe,1/2**qe,0]),B[Q]=le}}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&&(!le||!le.dem);)le=this.sourceCache.getTileByID(w.scaledTo(ee--).key);return le}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 bo(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 le;if(!(B>=0&&B=0&&Qw.canonical.z&&(w.canonical.z>=ee?le=w.canonical.z-ee:a.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));let qe=w.canonical.x-(w.canonical.x>>le<>le<>8<<4|le>>8,B[qe+3]=0;let Q=new a.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(B.buffer)),ee=new g(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,le=Math.round(w.x*this.painter.pixelRatio/devicePixelRatio),qe=Math.round(w.y*this.painter.pixelRatio/devicePixelRatio),Xe=Math.round(this.painter.height/devicePixelRatio);Q.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),ee.readPixels(le,Xe-qe-1,1,1,ee.RGBA,ee.UNSIGNED_BYTE,B),Q.bindFramebuffer.set(null);let ot=B[0]+(B[2]>>4<<8),Tt=B[1]+((15&B[2])<<8),Yt=this.coordsIndex[255-B[3]],Kt=Yt&&this.sourceCache.getTileByID(Yt);if(!Kt)return null;let xr=this._coordsTextureSize,Ir=(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 as={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ws{constructor(w,B){this.painter=w,this.terrain=B,this.pool=new Ss(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 le of ee){let qe=this.terrain.sourceCache.getTerrainCoords(le);for(let Xe in qe)this._coordsDescendingInv[Q][Xe]||(this._coordsDescendingInv[Q][Xe]=[]),this._coordsDescendingInv[Q][Xe].push(qe[Xe])}}this._coordsDescendingInvStr={};for(let Q of w._order){let ee=w._layers[Q],le=ee.source;if(as[ee.type]&&!this._coordsDescendingInvStr[le]){this._coordsDescendingInvStr[le]={};for(let qe in this._coordsDescendingInv[le])this._coordsDescendingInvStr[le][qe]=this._coordsDescendingInv[le][qe].map(Xe=>Xe.key).sort().join()}}for(let Q of this._renderableTiles)for(let ee in this._coordsDescendingInvStr){let le=this._coordsDescendingInvStr[ee][Q.tileID.key];le&&le!==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(as[B]&&(this._prevType&&as[this._prevType]||this._stacks.push([]),this._prevType=B,this._stacks[this._stacks.length-1].push(w.id),!ee))return!0;if(as[this._prevType]||as[B]&&ee){this._prevType=B;let le=this._stacks.length-1,qe=this._stacks[le]||[];for(let Xe of this._renderableTiles){if(this.pool.isFull()&&(js(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(Xe),Xe.rtt[le]){let Tt=this.pool.getObjectForId(Xe.rtt[le].id);if(Tt.stamp===Xe.rtt[le].stamp){this.pool.useObject(Tt);continue}}let ot=this.pool.getOrCreateFreeObject();this.pool.useObject(ot),this.pool.stampObject(ot),Xe.rtt[le]={id:ot.id,stamp:ot.stamp},Q.context.bindFramebuffer.set(ot.fbo.framebuffer),Q.context.clear({color:a.aM.transparent,stencil:0}),Q.currentStencilSource=void 0;for(let Tt=0;Tt{ue.touchstart=ue.dragStart,ue.touchmoveWindow=ue.dragMove,ue.touchend=ue.dragEnd},va={showCompass:!0,showZoom:!0,visualizePitch:!1};class no{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(),le=w.dragRotate._mousePitch.getClickTolerance();this.element=B,this.mouseRotate=Wl({clickTolerance:ee,enable:!0}),this.touchRotate=(({enable:qe,clickTolerance:Xe,bearingDegreesPerPixelMoved:ot=.8})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({bearingDelta:(Kt.x-Yt.x)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:ee,enable:!0}),this.map=w,Q&&(this.mousePitch=ah({clickTolerance:le,enable:!0}),this.touchPitch=(({enable:qe,clickTolerance:Xe,pitchDegreesPerPixelMoved:ot=-.5})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({pitchDelta:(Kt.y-Yt.y)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:le,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:le}=this.mousePitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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:le}=this.touchPitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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 ys;function rs(ue,w,B){let Q=new a.N(ue.lng,ue.lat);if(ue=new a.N(ue.lng,ue.lat),w){let ee=new a.N(ue.lng-360,ue.lat),le=new a.N(ue.lng+360,ue.lat),qe=B.locationPoint(ue).distSqr(w);B.locationPoint(ee).distSqr(w)180;){let ee=B.locationPoint(ue);if(ee.x>=0&&ee.y>=0&&ee.x<=B.width&&ee.y<=B.height)break;ue.lng>B.center.lng?ue.lng-=360:ue.lng+=360}return ue.lng!==Q.lng&&B.locationPoint(ue).y>B.height/2-B.getHorizon()?ue:Q}let $l={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 Cu(ue,w,B){let Q=ue.classList;for(let ee in $l)Q.remove(`maplibregl-${B}-anchor-${ee}`);Q.add(`maplibregl-${B}-anchor-${w}`)}class Yu 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?rs(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 le=\"\";this._rotationAlignment===\"viewport\"||this._rotationAlignment===\"auto\"?le=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===\"map\"&&(le=`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,`${$l[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${qe} ${le}`),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 le=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");le.setAttributeNS(null,\"stroke\",\"none\"),le.setAttributeNS(null,\"stroke-width\",\"1\"),le.setAttributeNS(null,\"fill\",\"none\"),le.setAttributeNS(null,\"fill-rule\",\"evenodd\");let qe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");qe.setAttributeNS(null,\"fill-rule\",\"nonzero\");let Xe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Xe.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),Xe.setAttributeNS(null,\"fill\",\"#000000\");let ot=[{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 Be of ot){let et=c.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");et.setAttributeNS(null,\"opacity\",\"0.04\"),et.setAttributeNS(null,\"cx\",\"10.5\"),et.setAttributeNS(null,\"cy\",\"5.80029008\"),et.setAttributeNS(null,\"rx\",Be.rx),et.setAttributeNS(null,\"ry\",Be.ry),Xe.appendChild(et)}let Tt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Tt.setAttributeNS(null,\"fill\",this._color);let Yt=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");Yt.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\"),Tt.appendChild(Yt);let Kt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Kt.setAttributeNS(null,\"opacity\",\"0.25\"),Kt.setAttributeNS(null,\"fill\",\"#000000\");let xr=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");xr.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\"),Kt.appendChild(xr);let Ir=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Ir.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),Ir.setAttributeNS(null,\"fill\",\"#FFFFFF\");let ve=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");ve.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 De=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");De.setAttributeNS(null,\"fill\",\"#FFFFFF\"),De.setAttributeNS(null,\"cx\",\"5.5\"),De.setAttributeNS(null,\"cy\",\"5.5\"),De.setAttributeNS(null,\"r\",\"5.4999962\"),ve.appendChild(be),ve.appendChild(De),qe.appendChild(Xe),qe.appendChild(Tt),qe.appendChild(Kt),qe.appendChild(Ir),qe.appendChild(ve),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()}),Cu(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,le=ee.terrain.depthAtPoint(this._pos),qe=ee.terrain.getElevationForLngLatZoom(this._lngLat,ee.transform.tileZoom);if(ee.transform.lngLatToCameraDepth(this._lngLat,qe)-le<.006)return void(this._element.style.opacity=this._opacity);let Xe=-this._offset.y/ee.transform._pixelPerMeter,ot=Math.sin(ee.getPitch()*Math.PI/180)*Xe,Tt=ee.terrain.depthAtPoint(new a.P(this._pos.x,this._pos.y-this._offset.y)),Yt=ee.transform.lngLatToCameraDepth(this._lngLat,qe+ot)-Tt>.006;!((Q=this._popup)===null||Q===void 0)&&Q.isOpen()&&Yt&&this._popup.remove(),this._element.style.opacity=Yt?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 Nc={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},pu=0,Uc=!1,xu={maxWidth:100,unit:\"metric\"};function Ac(ue,w,B){let Q=B&&B.maxWidth||100,ee=ue._container.clientHeight/2,le=ue.unproject([0,ee]),qe=ue.unproject([Q,ee]),Xe=le.distanceTo(qe);if(B&&B.unit===\"imperial\"){let ot=3.2808*Xe;ot>5280?Ua(w,Q,ot/5280,ue._getUIString(\"ScaleControl.Miles\")):Ua(w,Q,ot,ue._getUIString(\"ScaleControl.Feet\"))}else B&&B.unit===\"nautical\"?Ua(w,Q,Xe/1852,ue._getUIString(\"ScaleControl.NauticalMiles\")):Xe>=1e3?Ua(w,Q,Xe/1e3,ue._getUIString(\"ScaleControl.Kilometers\")):Ua(w,Q,Xe,ue._getUIString(\"ScaleControl.Meters\"))}function Ua(ue,w,B,Q){let ee=function(le){let qe=Math.pow(10,`${Math.floor(le)}`.length-1),Xe=le/qe;return Xe=Xe>=10?10:Xe>=5?5:Xe>=3?3:Xe>=2?2:Xe>=1?1:function(ot){let Tt=Math.pow(10,Math.ceil(-Math.log(ot)/Math.LN10));return Math.round(ot*Tt)/Tt}(Xe),qe*Xe}(B);ue.style.width=w*(ee/B)+\"px\",ue.innerHTML=`${ee} ${Q}`}let oo={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\",subpixelPositioning:!1},Vc=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function hc(ue){if(ue){if(typeof ue==\"number\"){let w=Math.round(Math.abs(ue)/Math.SQRT2);return{center:new a.P(0,0),top:new a.P(0,ue),\"top-left\":new a.P(w,w),\"top-right\":new a.P(-w,w),bottom:new a.P(0,-ue),\"bottom-left\":new a.P(w,-w),\"bottom-right\":new a.P(-w,-w),left:new a.P(ue,0),right:new a.P(-ue,0)}}if(ue instanceof a.P||Array.isArray(ue)){let w=a.P.convert(ue);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(ue.center||[0,0]),top:a.P.convert(ue.top||[0,0]),\"top-left\":a.P.convert(ue[\"top-left\"]||[0,0]),\"top-right\":a.P.convert(ue[\"top-right\"]||[0,0]),bottom:a.P.convert(ue.bottom||[0,0]),\"bottom-left\":a.P.convert(ue[\"bottom-left\"]||[0,0]),\"bottom-right\":a.P.convert(ue[\"bottom-right\"]||[0,0]),left:a.P.convert(ue.left||[0,0]),right:a.P.convert(ue.right||[0,0])}}return hc(new a.P(0,0))}let Ku=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=Na,i.BoxZoomHandler=ku,i.CanvasSource=Jt,i.CooperativeGesturesHandler=Qi,i.DoubleClickZoomHandler=ki,i.DragPanHandler=wn,i.DragRotateHandler=Nn,i.EdgeInsets=hu,i.FullscreenControl=class extends a.E{constructor(ue={}){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,ue&&ue.container&&(ue.container instanceof HTMLElement?this._container=ue.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(ue){return this._map=ue,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 ue=this._fullscreenButton=c.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);c.create(\"span\",\"maplibregl-ctrl-icon\",ue).setAttribute(\"aria-hidden\",\"true\"),ue.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let ue=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",ue),this._fullscreenButton.title=ue}_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=st,i.GeolocateControl=class extends a.E{constructor(ue){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(),le=a.e({bearing:ee},this.options.fitBoundsOptions),qe=ce.fromLngLat(B,Q);this._map.fitBounds(qe,le,{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&&Uc)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 Yu({element:this._dotElement}),this._circleElement=c.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Yu({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({},Nc,ue)}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),function(){return a._(this,arguments,void 0,function*(w=!1){if(ys!==void 0&&!w)return ys;if(window.navigator.permissions===void 0)return ys=!!window.navigator.geolocation,ys;try{ys=(yield window.navigator.permissions.query({name:\"geolocation\"})).state!==\"denied\"}catch(B){ys=!!window.navigator.geolocation}return ys})}().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,pu=0,Uc=!1}_isOutOfMapMaxBounds(ue){let w=this._map.getMaxBounds(),B=ue.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 ue=this._map.getBounds(),w=ue.getSouthEast(),B=ue.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\":pu--,Uc=!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 ue;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),pu++,pu>1?(ue={maximumAge:6e5,timeout:0},Uc=!0):(ue=this.options.positionOptions,Uc=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,ue)}}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=Ah,i.ImageSource=Gt,i.KeyboardHandler=Wt,i.LngLatBounds=ce,i.LogoControl=Yn,i.Map=class extends Ra{constructor(ue){a.bf.mark(a.bg.create);let w=Object.assign(Object.assign({},Ws),ue);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 nl(w.minZoom,w.maxZoom,w.minPitch,w.maxPitch,w.renderWorldCopies),{bearingSnap:w.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new Dn,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({},Ho),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=p.addThrottleControl(()=>this.isMoving()),this._requestManager=new k(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=nh(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 Ca(this,w),this._hash=w.hash&&new Ah(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 Na(typeof w.attributionControl==\"boolean\"?void 0:w.attributionControl)),w.maplibreLogo&&this.addControl(new Yn,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(ue,w){if(w===void 0&&(w=ue.getDefaultPosition?ue.getDefaultPosition():\"top-right\"),!ue||!ue.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=ue.onAdd(this);this._controls.push(ue);let Q=this._controlPositions[w];return w.indexOf(\"bottom\")!==-1?Q.insertBefore(B,Q.firstChild):Q.appendChild(B),this}removeControl(ue){if(!ue||!ue.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(ue);return w>-1&&this._controls.splice(w,1),ue.onRemove(this),this}hasControl(ue){return this._controls.indexOf(ue)>-1}calculateCameraOptionsFromTo(ue,w,B,Q){return Q==null&&this.terrain&&(Q=this.terrain.getElevationForLngLatZoom(B,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(ue,w,B,Q)}resize(ue){var w;let B=this._containerDimensions(),Q=B[0],ee=B[1],le=this._getClampedPixelRatio(Q,ee);if(this._resizeCanvas(Q,ee,le),this.painter.resize(Q,ee,le),this.painter.overLimit()){let Xe=this.painter.context.gl;this._maxCanvasSize=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];let ot=this._getClampedPixelRatio(Q,ee);this._resizeCanvas(Q,ee,ot),this.painter.resize(Q,ee,ot)}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\",ue)).fire(new a.k(\"move\",ue))),this.fire(new a.k(\"resize\",ue)),qe&&this.fire(new a.k(\"moveend\",ue)),this}_getClampedPixelRatio(ue,w){let{0:B,1:Q}=this._maxCanvasSize,ee=this.getPixelRatio(),le=ue*ee,qe=w*ee;return Math.min(le>B?B/le:1,qe>Q?Q/qe:1)*ee}getPixelRatio(){var ue;return(ue=this._overridePixelRatio)!==null&&ue!==void 0?ue:devicePixelRatio}setPixelRatio(ue){this._overridePixelRatio=ue,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(ue){return this.transform.setMaxBounds(ce.convert(ue)),this._update()}setMinZoom(ue){if((ue=ue==null?-2:ue)>=-2&&ue<=this.transform.maxZoom)return this.transform.minZoom=ue,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=ue,this._update(),this.getZoom()>ue&&this.setZoom(ue),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(ue){if((ue=ue==null?0:ue)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(ue>=0&&ue<=this.transform.maxPitch)return this.transform.minPitch=ue,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(ue>=this.transform.minPitch)return this.transform.maxPitch=ue,this._update(),this.getPitch()>ue&&this.setPitch(ue),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(ue){return this.transform.renderWorldCopies=ue,this._update()}project(ue){return this.transform.locationPoint(a.N.convert(ue),this.style&&this.terrain)}unproject(ue){return this.transform.pointLocation(a.P.convert(ue),this.terrain)}isMoving(){var ue;return this._moving||((ue=this.handlers)===null||ue===void 0?void 0:ue.isMoving())}isZooming(){var ue;return this._zooming||((ue=this.handlers)===null||ue===void 0?void 0:ue.isZooming())}isRotating(){var ue;return this._rotating||((ue=this.handlers)===null||ue===void 0?void 0:ue.isRotating())}_createDelegatedListener(ue,w,B){if(ue===\"mouseenter\"||ue===\"mouseover\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:le=>{let qe=w.filter(ot=>this.getLayer(ot)),Xe=qe.length!==0?this.queryRenderedFeatures(le.point,{layers:qe}):[];Xe.length?Q||(Q=!0,B.call(this,new jl(ue,this,le.originalEvent,{features:Xe}))):Q=!1},mouseout:()=>{Q=!1}}}}if(ue===\"mouseleave\"||ue===\"mouseout\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:qe=>{let Xe=w.filter(ot=>this.getLayer(ot));(Xe.length!==0?this.queryRenderedFeatures(qe.point,{layers:Xe}):[]).length?Q=!0:Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))},mouseout:qe=>{Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))}}}}{let Q=ee=>{let le=w.filter(Xe=>this.getLayer(Xe)),qe=le.length!==0?this.queryRenderedFeatures(ee.point,{layers:le}):[];qe.length&&(ee.features=qe,B.call(this,ee),delete ee.features)};return{layers:w,listener:B,delegates:{[ue]:Q}}}}_saveDelegatedListener(ue,w){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[ue]=this._delegatedListeners[ue]||[],this._delegatedListeners[ue].push(w)}_removeDelegatedListener(ue,w,B){if(!this._delegatedListeners||!this._delegatedListeners[ue])return;let Q=this._delegatedListeners[ue];for(let ee=0;eew.includes(qe))){for(let qe in le.delegates)this.off(qe,le.delegates[qe]);return void Q.splice(ee,1)}}}on(ue,w,B){if(B===void 0)return super.on(ue,w);let Q=this._createDelegatedListener(ue,typeof w==\"string\"?[w]:w,B);this._saveDelegatedListener(ue,Q);for(let ee in Q.delegates)this.on(ee,Q.delegates[ee]);return this}once(ue,w,B){if(B===void 0)return super.once(ue,w);let Q=typeof w==\"string\"?[w]:w,ee=this._createDelegatedListener(ue,Q,B);for(let le in ee.delegates){let qe=ee.delegates[le];ee.delegates[le]=(...Xe)=>{this._removeDelegatedListener(ue,Q,B),qe(...Xe)}}this._saveDelegatedListener(ue,ee);for(let le in ee.delegates)this.once(le,ee.delegates[le]);return this}off(ue,w,B){return B===void 0?super.off(ue,w):(this._removeDelegatedListener(ue,typeof w==\"string\"?[w]:w,B),this)}queryRenderedFeatures(ue,w){if(!this.style)return[];let B,Q=ue instanceof a.P||Array.isArray(ue),ee=Q?ue:[[0,0],[this.transform.width,this.transform.height]];if(w=w||(Q?{}:ue)||{},ee instanceof a.P||typeof ee[0]==\"number\")B=[a.P.convert(ee)];else{let le=a.P.convert(ee[0]),qe=a.P.convert(ee[1]);B=[le,new a.P(qe.x,le.y),qe,new a.P(le.x,qe.y),le]}return this.style.queryRenderedFeatures(B,w,this.transform)}querySourceFeatures(ue,w){return this.style.querySourceFeatures(ue,w)}setStyle(ue,w){return(w=a.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},w)).diff!==!1&&w.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&ue?(this._diffStyle(ue,w),this):(this._localIdeographFontFamily=w.localIdeographFontFamily,this._updateStyle(ue,w))}setTransformRequest(ue){return this._requestManager.setTransformRequest(ue),this}_getUIString(ue){let w=this._locale[ue];if(w==null)throw new Error(`Missing UI string '${ue}'`);return w}_updateStyle(ue,w){if(w.transformStyle&&this.style&&!this.style._loaded)return void this.style.once(\"style.load\",()=>this._updateStyle(ue,w));let B=this.style&&w.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!ue)),ue?(this.style=new Ga(this,w||{}),this.style.setEventedParent(this,{style:this.style}),typeof ue==\"string\"?this.style.loadURL(ue,w,B):this.style.loadJSON(ue,w,B),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ga(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(ue,w){if(typeof ue==\"string\"){let B=this._requestManager.transformRequest(ue,\"Style\");a.h(B,new AbortController).then(Q=>{this._updateDiff(Q.data,w)}).catch(Q=>{Q&&this.fire(new a.j(Q))})}else typeof ue==\"object\"&&this._updateDiff(ue,w)}_updateDiff(ue,w){try{this.style.setState(ue,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(ue,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(ue,w){return this._lazyInitEmptyStyle(),this.style.addSource(ue,w),this._update(!0)}isSourceLoaded(ue){let w=this.style&&this.style.sourceCaches[ue];if(w!==void 0)return w.loaded();this.fire(new a.j(new Error(`There is no source with ID '${ue}'`)))}setTerrain(ue){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),ue){let w=this.style.sourceCaches[ue.source];if(!w)throw new Error(`cannot load terrain, because there exists no source with ID: ${ue.source}`);this.terrain===null&&w.reload();for(let B in this.style._layers){let Q=this.style._layers[B];Q.type===\"hillshade\"&&Q.source===ue.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,ue),this.painter.renderToTexture=new ws(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!==ue.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:ue})),this}getTerrain(){var ue,w;return(w=(ue=this.terrain)===null||ue===void 0?void 0:ue.options)!==null&&w!==void 0?w:null}areTilesLoaded(){let ue=this.style&&this.style.sourceCaches;for(let w in ue){let B=ue[w]._tiles;for(let Q in B){let ee=B[Q];if(ee.state!==\"loaded\"&&ee.state!==\"errored\")return!1}}return!0}removeSource(ue){return this.style.removeSource(ue),this._update(!0)}getSource(ue){return this.style.getSource(ue)}addImage(ue,w,B={}){let{pixelRatio:Q=1,sdf:ee=!1,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt}=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:Yt,height:Kt,data:xr}=w,Ir=w;return this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},new Uint8Array(xr)),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0,userImage:Ir}),Ir.onAdd&&Ir.onAdd(this,ue),this}}{let{width:Yt,height:Kt,data:xr}=u.getImageData(w);this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},xr),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0})}}updateImage(ue,w){let B=this.style.getImage(ue);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:le,data:qe}=Q;if(ee===void 0||le===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||le!==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 Xe=!(w instanceof HTMLImageElement||a.b(w));return B.data.replace(qe,Xe),this.style.updateImage(ue,B),this}getImage(ue){return this.style.getImage(ue)}hasImage(ue){return ue?!!this.style.getImage(ue):(this.fire(new a.j(new Error(\"Missing required image id\"))),!1)}removeImage(ue){this.style.removeImage(ue)}loadImage(ue){return p.getImage(this._requestManager.transformRequest(ue,\"Image\"),new AbortController)}listImages(){return this.style.listImages()}addLayer(ue,w){return this._lazyInitEmptyStyle(),this.style.addLayer(ue,w),this._update(!0)}moveLayer(ue,w){return this.style.moveLayer(ue,w),this._update(!0)}removeLayer(ue){return this.style.removeLayer(ue),this._update(!0)}getLayer(ue){return this.style.getLayer(ue)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(ue,w,B){return this.style.setLayerZoomRange(ue,w,B),this._update(!0)}setFilter(ue,w,B={}){return this.style.setFilter(ue,w,B),this._update(!0)}getFilter(ue){return this.style.getFilter(ue)}setPaintProperty(ue,w,B,Q={}){return this.style.setPaintProperty(ue,w,B,Q),this._update(!0)}getPaintProperty(ue,w){return this.style.getPaintProperty(ue,w)}setLayoutProperty(ue,w,B,Q={}){return this.style.setLayoutProperty(ue,w,B,Q),this._update(!0)}getLayoutProperty(ue,w){return this.style.getLayoutProperty(ue,w)}setGlyphs(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(ue,w),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(ue,w,B={}){return this._lazyInitEmptyStyle(),this.style.addSprite(ue,w,B,Q=>{Q||this._update(!0)}),this}removeSprite(ue){return this._lazyInitEmptyStyle(),this.style.removeSprite(ue),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setSprite(ue,w,B=>{B||this._update(!0)}),this}setLight(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setLight(ue,w),this._update(!0)}getLight(){return this.style.getLight()}setSky(ue){return this._lazyInitEmptyStyle(),this.style.setSky(ue),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(ue,w){return this.style.setFeatureState(ue,w),this._update()}removeFeatureState(ue,w){return this.style.removeFeatureState(ue,w),this._update()}getFeatureState(ue){return this.style.getFeatureState(ue)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let ue=0,w=0;return this._container&&(ue=this._container.clientWidth||400,w=this._container.clientHeight||300),[ue,w]}_setupContainer(){let ue=this._container;ue.classList.add(\"maplibregl-map\");let w=this._canvasContainer=c.create(\"div\",\"maplibregl-canvas-container\",ue);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\",ue),le=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(qe=>{le[qe]=c.create(\"div\",`maplibregl-ctrl-${qe} `,ee)}),this._container.addEventListener(\"scroll\",this._onMapScroll,!1)}_resizeCanvas(ue,w,B){this._canvas.width=Math.floor(B*ue),this._canvas.height=Math.floor(B*w),this._canvas.style.width=`${ue}px`,this._canvas.style.height=`${w}px`}_setupPainter(){let ue={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:ue},Q&&(w.statusMessage=Q.statusMessage,w.type=Q.type)},{once:!0});let B=this._canvas.getContext(\"webgl2\",ue)||this._canvas.getContext(\"webgl\",ue);if(!B){let Q=\"Failed to initialize WebGL\";throw w?(w.message=Q,new Error(JSON.stringify(w))):new Error(Q)}this.painter=new Dc(B,this.transform),f.testSupport(B)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(ue){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||ue,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(ue){return this._update(),this._renderTaskQueue.add(ue)}_cancelRenderFrame(ue){this._renderTaskQueue.remove(ue)}_render(ue){let w=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(ue),this._removed)return;let B=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let ee=this.transform.zoom,le=u.now();this.style.zoomHistory.update(ee,le);let qe=new a.z(ee,{now:le,fadeDuration:w,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),Xe=qe.crossFadingFactor();Xe===1&&Xe===this._crossFadingFactor||(B=!0,this._crossFadingFactor=Xe),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 ue;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),p.removeThrottleControl(this._imageQueueHandle),(ue=this._resizeObserver)===null||ue===void 0||ue.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(ue=>{a.bf.frame(ue),this._frameRequest=null,this._render(ue)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(ue){this._showTileBoundaries!==ue&&(this._showTileBoundaries=ue,this._update())}get showPadding(){return!!this._showPadding}set showPadding(ue){this._showPadding!==ue&&(this._showPadding=ue,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(ue){this._showCollisionBoxes!==ue&&(this._showCollisionBoxes=ue,ue?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(ue){this._showOverdrawInspector!==ue&&(this._showOverdrawInspector=ue,this._update())}get repaint(){return!!this._repaint}set repaint(ue){this._repaint!==ue&&(this._repaint=ue,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(ue){this._vertices=ue,this._update()}get version(){return ml}getCameraTargetElevation(){return this.transform.elevation}},i.MapMouseEvent=jl,i.MapTouchEvent=lf,i.MapWheelEvent=Hh,i.Marker=Yu,i.NavigationControl=class{constructor(ue){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({},va,ue),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(ue){return this._map=ue,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 no(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(ue,w){let B=c.create(\"button\",ue,this._container);return B.type=\"button\",B.addEventListener(\"click\",w),B}},i.Popup=class extends a.E{constructor(ue){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 Xe of this.options.className.split(\" \"))this._container.classList.add(Xe);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?rs(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,le=hc(this.options.offset);if(!ee){let Xe=this._container.offsetWidth,ot=this._container.offsetHeight,Tt;Tt=Q.y+le.bottom.ythis._map.transform.height-ot?[\"bottom\"]:[],Q.xthis._map.transform.width-Xe/2&&Tt.push(\"right\"),ee=Tt.length===0?\"bottom\":Tt.join(\"-\")}let qe=Q.add(le[ee]);this.options.subpixelPositioning||(qe=qe.round()),c.setTransform(this._container,`${$l[ee]} translate(${qe.x}px,${qe.y}px)`),Cu(this._container,ee,\"popup\")},this._onClose=()=>{this.remove()},this.options=a.e(Object.create(oo),ue)}addTo(ue){return this._map&&this.remove(),this._map=ue,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(ue){return this._lngLat=a.N.convert(ue),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(ue){return this.setDOMContent(document.createTextNode(ue))}setHTML(ue){let w=document.createDocumentFragment(),B=document.createElement(\"body\"),Q;for(B.innerHTML=ue;Q=B.firstChild,Q;)w.appendChild(Q);return this.setDOMContent(w)}getMaxWidth(){var ue;return(ue=this._container)===null||ue===void 0?void 0:ue.style.maxWidth}setMaxWidth(ue){return this.options.maxWidth=ue,this._update(),this}setDOMContent(ue){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(ue),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(ue){return this._container&&this._container.classList.add(ue),this}removeClassName(ue){return this._container&&this._container.classList.remove(ue),this}setOffset(ue){return this.options.offset=ue,this._update(),this}toggleClassName(ue){if(this._container)return this._container.classList.toggle(ue)}setSubpixelPositioning(ue){this.options.subpixelPositioning=ue}_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 ue=this._container.querySelector(Vc);ue&&ue.focus()}},i.RasterDEMTileSource=Zt,i.RasterTileSource=pt,i.ScaleControl=class{constructor(ue){this._onMove=()=>{Ac(this._map,this._container,this.options)},this.setUnit=w=>{this.options.unit=w,Ac(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},xu),ue)}getDefaultPosition(){return\"bottom-left\"}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",ue.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=Kr,i.Style=Ga,i.TerrainControl=class{constructor(ue){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=ue}onAdd(ue){return this._map=ue,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=Bc,i.TwoFingersTouchRotateHandler=cf,i.TwoFingersTouchZoomHandler=vu,i.TwoFingersTouchZoomRotateHandler=Yi,i.VectorTileSource=ut,i.VideoSource=Nt,i.addSourceType=(ue,w)=>a._(void 0,void 0,void 0,function*(){if(wr(ue))throw new Error(`A source type called \"${ue}\" already exists.`);((B,Q)=>{sr[B]=Q})(ue,w)}),i.clearPrewarmedResources=function(){let ue=me;ue&&(ue.isPreloaded()&&ue.numActive()===1?(ue.release(_e),me=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 Qt().getRTLTextPluginStatus()},i.getVersion=function(){return Ku},i.getWorkerCount=function(){return Ee.workerCount},i.getWorkerUrl=function(){return a.a.WORKER_URL},i.importScriptInWorkers=function(ue){return Ae().broadcast(\"IS\",ue)},i.prewarm=function(){Se().acquire(_e)},i.setMaxParallelImageRequests=function(ue){a.a.MAX_PARALLEL_IMAGE_REQUESTS=ue},i.setRTLTextPlugin=function(ue,w){return Qt().setRTLTextPlugin(ue,w)},i.setWorkerCount=function(ue){Ee.workerCount=ue},i.setWorkerUrl=function(ue){a.a.WORKER_URL=ue}});var n=e;return n})});var cje=ye((Ebr,uje)=>{\"use strict\";var nw=Dr(),AXt=ru().sanitizeHTML,SXt=AJ(),oje=wx();function sje(e,t){this.subplot=e,this.uid=e.uid+\"-\"+t,this.index=t,this.idSource=\"source-\"+this.uid,this.idLayer=oje.layoutLayerPrefix+this.uid,this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var ag=sje.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=u7(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,!!u7(e)){var r=MXt(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 lje(e){var t={},r={};switch(e.type){case\"circle\":nw.extendFlat(r,{\"circle-radius\":e.circle.radius,\"circle-color\":e.color,\"circle-opacity\":e.opacity});break;case\"line\":nw.extendFlat(r,{\"line-width\":e.line.width,\"line-color\":e.color,\"line-opacity\":e.opacity,\"line-dasharray\":e.line.dash});break;case\"fill\":nw.extendFlat(r,{\"fill-color\":e.color,\"fill-outline-color\":e.fill.outlinecolor,\"fill-opacity\":e.opacity});break;case\"symbol\":var n=e.symbol,i=SXt(n.textposition,n.iconsize);nw.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}),nw.extendFlat(r,{\"icon-color\":e.color,\"text-color\":n.textfont.color,\"text-opacity\":e.opacity});break;case\"raster\":nw.extendFlat(r,{\"raster-fade-duration\":0,\"raster-opacity\":e.opacity});break}return{layout:t,paint:r}}function MXt(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=AXt(e.sourceattribution)),n}uje.exports=function(t,r,n){var i=new sje(t,r);return i.update(n),i}});var yje=ye((kbr,mje)=>{\"use strict\";var LJ=aje(),PJ=Dr(),dje=ix(),fje=qa(),EXt=ho(),kXt=yv(),c7=vf(),vje=Mg(),CXt=vje.drawMode,LXt=vje.selectMode,PXt=Of().prepSelect,IXt=Of().clearOutline,RXt=Of().clearSelectionsCache,DXt=Of().selectOnClick,aw=wx(),FXt=cje();function pje(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 Uh=pje.prototype;Uh.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)};Uh.createMap=function(e,t,r,n){var i=this,a=t[i.id],o=i.styleObj=gje(a.style),s=a.bounds,l=s?[[s.west,s.south],[s.east,s.north]]:null,u=i.map=new LJ.Map({container:i.div,style:o.style,center:IJ(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 LJ.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(dje.fetchTraceGeoData(e)),Promise.all(f).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.updateMap=function(e,t,r,n){var i=this,a=i.map,o=t[this.id];i.rejectOnError(n);var s=[],l=gje(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(dje.fetchTraceGeoData(e)),Promise.all(s).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.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&&DXt(l.originalEvent,n,[r.xaxis],[r.yaxis],r.id,s),u.indexOf(\"event\")>-1&&c7.click(n,l.originalEvent)}}};Uh.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=PJ.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),LXt(a)||CXt(a)?(r.dragPan.disable(),r.on(\"zoomstart\",t.clearOutline),t.dragOptions.prepFn=function(l,u,c){PXt(l,u,c,t.dragOptions,a)},kXt.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))};Uh.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])};Uh.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 RJ=Dr(),OXt=k_(),qXt=Yd(),_je=jk();xje.exports=function(t,r,n){OXt(t,r,n,{type:\"map\",attributes:_je,handleDefaults:BXt,partition:\"y\"})};function BXt(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,qXt(e,t,{name:\"layers\",handleItemDefaults:NXt}),t._input=e}function NXt(e,t){function r(l,u){return RJ.coerce(e,t,_je.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\",RJ.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\"),RJ.coerceFont(r,\"symbol.textfont\",void 0,{noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0}),r(\"symbol.textposition\"),r(\"symbol.placement\"))}}});var h7=ye(l0=>{\"use strict\";var f7=Dr(),wje=f7.strTranslate,UXt=f7.strScale,VXt=Id().getSubplotCalcData,GXt=Wp(),HXt=Oa(),Tje=So(),jXt=ru(),WXt=yje(),Tx=\"map\";l0.name=Tx;l0.attr=\"subplot\";l0.idRoot=Tx;l0.idRegex=l0.attrRegex=f7.counterRegex(Tx);l0.attributes={subplot:{valType:\"subplotid\",dflt:\"map\",editType:\"calc\"}};l0.layoutAttributes=jk();l0.supplyLayoutDefaults=bje();l0.plot=function(t){for(var r=t._fullLayout,n=t.calcdata,i=r._subplots[Tx],a=0;a_/2){var b=f.split(\"|\").join(\"
\");d.text(b).attr(\"data-unformatted\",b).call(jXt.convertToTspans,e),v=Tje.bBox(d.node())}d.attr(\"transform\",wje(-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 p=1;v.width+6>_&&(p=_/(v.width+6));var k=[n.l+n.w*o.x[1],n.t+n.h*(1-o.y[0])];h.attr(\"transform\",wje(k[0],k[1])+UXt(p))}};l0.updateFx=function(e){for(var t=e._fullLayout,r=t._subplots[Tx],n=0;n{\"use strict\";Aje.exports={attributes:i7(),supplyDefaults:OHe(),colorbar:$d(),formatLabels:TJ(),calc:vF(),plot:JHe(),hoverPoints:l7().hoverPoints,eventData:tje(),selectPoints:ije(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.update(t)}},moduleType:\"trace\",name:\"scattermap\",basePlotModule:h7(),categories:[\"map\",\"gl\",\"symbols\",\"showLegend\",\"scatter-like\"],meta:{}}});var Eje=ye((Ibr,Mje)=>{\"use strict\";Mje.exports=Sje()});var DJ=ye((Rbr,kje)=>{\"use strict\";var d1=e5(),XXt=Tu(),{hovertemplateAttrs:ZXt,templatefallbackAttrs:YXt}=Ll(),KXt=Gl(),Ax=Ao().extendFlat;kje.exports=Ax({locations:{valType:\"data_array\",editType:\"calc\"},z:{valType:\"data_array\",editType:\"calc\"},geojson:{valType:\"any\",editType:\"calc\"},featureidkey:Ax({},d1.featureidkey,{}),below:{valType:\"string\",editType:\"plot\"},text:d1.text,hovertext:d1.hovertext,marker:{line:{color:Ax({},d1.marker.line.color,{editType:\"plot\"}),width:Ax({},d1.marker.line.width,{editType:\"plot\"}),editType:\"calc\"},opacity:Ax({},d1.marker.opacity,{editType:\"plot\"}),editType:\"calc\"},selected:{marker:{opacity:Ax({},d1.selected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},unselected:{marker:{opacity:Ax({},d1.unselected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},hoverinfo:d1.hoverinfo,hovertemplate:ZXt({},{keys:[\"properties\"]}),hovertemplatefallback:YXt(),showlegend:Ax({},KXt.showlegend,{dflt:!1})},XXt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Lje=ye((Dbr,Cje)=>{\"use strict\";var Yk=Dr(),JXt=Qh(),$Xt=DJ();Cje.exports=function(t,r,n,i){function a(c,f){return Yk.coerce(t,r,$Xt,c,f)}var o=a(\"locations\"),s=a(\"z\"),l=a(\"geojson\");if(!Yk.isArrayOrTypedArray(o)||!o.length||!Yk.isArrayOrTypedArray(s)||!s.length||!(typeof l==\"string\"&&l!==\"\"||Yk.isPlainObject(l))){r.visible=!1;return}a(\"featureidkey\"),r._length=Math.min(o.length,s.length),a(\"below\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\");var u=a(\"marker.line.width\");u&&a(\"marker.line.color\"),a(\"marker.opacity\"),JXt(t,r,i,a,{prefix:\"\",cLetter:\"z\"}),Yk.coerceSelectionMarkerOpacity(r,a)}});var FJ=ye((Fbr,Rje)=>{\"use strict\";var QXt=Eo(),v1=Dr(),eZt=tc(),tZt=So(),rZt=tx().makeBlank,Pje=ix();function iZt(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:rZt()};if(!r)return a;var o=Pje.extractTraceFeature(e);if(!o)return a;var s=eZt.makeColorScaleFuncFromTrace(t),l=t.marker,u=l.line||{},c;v1.isArrayOrTypedArray(l.opacity)&&(c=function(k){var E=k.mo;return QXt(E)?+v1.constrain(E,0,1):0});var f;v1.isArrayOrTypedArray(u.color)&&(f=function(k){return k.mlc});var h;v1.isArrayOrTypedArray(u.width)&&(h=function(k){return k.mlw});for(var d=0;d{\"use strict\";var Fje=FJ().convert,nZt=FJ().convertOnSelect,Dje=wx().traceLayerPrefix;function zje(e,t){this.type=\"choroplethmap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"fill\",Dje+t+\"-fill\"],[\"line\",Dje+t+\"-line\"]],this.below=null}var C5=zje.prototype;C5.update=function(e){this._update(Fje(e)),e[0].trace._glTrace=this};C5.updateOnSelect=function(e){this._update(nZt(e))};C5._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])};C5.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};Oje.exports=function(t,r){var n=r[0].trace,i=new zje(t,n.uid),a=i.sourceId,o=Fje(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 Nje=ye((Obr,Bje)=>{\"use strict\";Bje.exports={attributes:DJ(),supplyDefaults:Lje(),colorbar:S_(),calc:FF(),plot:qje(),hoverPoints:OF(),eventData:qF(),selectPoints:BF(),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\";Uje.exports=Nje()});var OJ=ye((Bbr,Hje)=>{\"use strict\";var aZt=Tu(),{hovertemplateAttrs:oZt,templatefallbackAttrs:sZt}=Ll(),Gje=Gl(),d7=i7(),zJ=Ao().extendFlat;Hje.exports=zJ({lon:d7.lon,lat:d7.lat,z:{valType:\"data_array\",editType:\"calc\"},radius:{valType:\"number\",editType:\"plot\",arrayOk:!0,min:1,dflt:30},below:{valType:\"string\",editType:\"plot\"},text:d7.text,hovertext:d7.hovertext,hoverinfo:zJ({},Gje.hoverinfo,{flags:[\"lon\",\"lat\",\"z\",\"text\",\"name\"]}),hovertemplate:oZt(),hovertemplatefallback:sZt(),showlegend:zJ({},Gje.showlegend,{dflt:!1})},aZt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Wje=ye((Nbr,jje)=>{\"use strict\";var lZt=Dr(),uZt=Qh(),cZt=OJ();jje.exports=function(t,r,n,i){function a(u,c){return lZt.coerce(t,r,cZt,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\"),a(\"hovertemplatefallback\"),uZt(t,r,i,a,{prefix:\"\",cLetter:\"z\"})}});var Yje=ye((Ubr,Zje)=>{\"use strict\";var qJ=Eo(),fZt=Dr().isArrayOrTypedArray,BJ=fs().BADNUM,hZt=gv(),Xje=Dr()._;Zje.exports=function(t,r){for(var n=r._length,i=new Array(n),a=r.z,o=fZt(a)&&a.length,s=0;s{\"use strict\";var dZt=Eo(),NJ=Dr(),Kje=ka(),Jje=tc(),$je=fs().BADNUM,vZt=tx().makeBlank;Qje.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:vZt()};if(!n)return a;var o=[],s,l=r.z,u=r.radius,c=NJ.isArrayOrTypedArray(l)&&l.length,f=NJ.isArrayOrTypedArray(u);for(s=0;s0?+u[s]:0),o.push({type:\"Feature\",geometry:{type:\"Point\",coordinates:d},properties:v})}}var b=Jje.extractOpts(r),p=b.reversescale?Jje.flipScale(b.colorscale):b.colorscale,k=p[0][1],E=Kje.opacity(k)<1?k:Kje.addOpacity(k,0),S=[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,E];for(s=1;s{\"use strict\";var tWe=eWe(),pZt=wx().traceLayerPrefix;function rWe(e,t){this.type=\"densitymap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"heatmap\",pZt+t+\"-heatmap\"]],this.below=null}var v7=rWe.prototype;v7.update=function(e){var t=this.subplot,r=this.layerList,n=tWe(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])};v7.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};iWe.exports=function(t,r){var n=r[0].trace,i=new rWe(t,n.uid),a=i.sourceId,o=tWe(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 oWe=ye((Hbr,aWe)=>{\"use strict\";var gZt=ho(),mZt=l7().hoverPoints,yZt=l7().getExtraText;aWe.exports=function(t,r,n){var i=mZt(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=gZt.tickText(u,u.c2l(l.z),\"hover\").text}return a.extraText=yZt(s,l,o[0].t.labels),[a]}}});var lWe=ye((jbr,sWe)=>{\"use strict\";sWe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t.z=r.z,t}});var cWe=ye((Wbr,uWe)=>{\"use strict\";uWe.exports={attributes:OJ(),supplyDefaults:Wje(),colorbar:S_(),formatLabels:TJ(),calc:Yje(),plot:nWe(),hoverPoints:oWe(),eventData:lWe(),getBelow:function(e,t){for(var r=t.getMapLayers(),n=0;n{\"use strict\";fWe.exports=cWe()});var VJ=ye((Ybr,mWe)=>{\"use strict\";var _Zt=ec(),xZt=Gl(),dWe=Lh(),UJ=n3(),bZt=Cc().attributes,{hovertemplateAttrs:vWe,templatefallbackAttrs:pWe}=Ll(),wZt=Tu(),TZt=vl().templatedArray,AZt=df().descriptionOnlyNumbers,gWe=Ao().extendFlat,SZt=mc().overrideAll,Zbr=mWe.exports=SZt({hoverinfo:gWe({},xZt.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:UJ.hoverlabel,domain:bZt({name:\"sankey\",trace:!0}),orientation:{valType:\"enumerated\",values:[\"v\",\"h\"],dflt:\"h\"},valueformat:{valType:\"string\",dflt:\".3s\",description:AZt(\"value\")},valuesuffix:{valType:\"string\",dflt:\"\"},arrangement:{valType:\"enumerated\",values:[\"snap\",\"perpendicular\",\"freeform\",\"fixed\"],dflt:\"snap\"},textfont:_Zt({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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),colorscales:TZt(\"concentrationscales\",{editType:\"calc\",label:{valType:\"string\",editType:\"calc\",dflt:\"\"},cmax:{valType:\"number\",editType:\"calc\",dflt:1},cmin:{valType:\"number\",editType:\"calc\",dflt:0},colorscale:gWe(wZt().colorscale,{dflt:[[0,\"white\"],[1,\"black\"]]})})}},\"calc\",\"nested\")});var wWe=ye((Kbr,bWe)=>{\"use strict\";var L5=Dr(),p7=VJ(),MZt=ka(),yWe=cd(),EZt=Cc().defaults,_We=fM(),xWe=vl(),kZt=Yd();bWe.exports=function(t,r,n,i){function a(S,L){return L5.coerce(t,r,p7,S,L)}var o=L5.extendDeep(i.hoverlabel,t.hoverlabel),s=t.node,l=xWe.newContainer(r,\"node\");function u(S,L){return L5.coerce(s,l,p7.node,S,L)}u(\"label\"),u(\"groups\"),u(\"x\"),u(\"y\"),u(\"pad\"),u(\"thickness\"),u(\"line.color\"),u(\"line.width\"),u(\"hoverinfo\",t.hoverinfo),_We(s,l,u,o),u(\"hovertemplate\"),u(\"align\");var c=i.colorway,f=function(S){return c[S%c.length]};u(\"color\",l.label.map(function(S,L){return MZt.addOpacity(f(L),.8)})),u(\"customdata\");var h=t.link||{},d=xWe.newContainer(r,\"link\");function v(S,L){return L5.coerce(h,d,p7.link,S,L)}v(\"label\"),v(\"arrowlen\"),v(\"source\"),v(\"target\"),v(\"value\"),v(\"line.color\"),v(\"line.width\"),v(\"hoverinfo\",t.hoverinfo),_We(h,d,v,o),v(\"hovertemplate\");var _=yWe(i.paper_bgcolor).getLuminance()<.333,b=_?\"rgba(255, 255, 255, 0.6)\":\"rgba(0, 0, 0, 0.2)\",p=v(\"color\",b);function k(S){var L=yWe(S);if(!L.isValid())return S;var x=L.getAlpha();return x<=.8?L.setAlpha(x+.2):L=_?L.brighten():L.darken(),L.toRgbString()}v(\"hovercolor\",Array.isArray(p)?p.map(k):k(p)),v(\"customdata\"),kZt(h,d,{name:\"colorscales\",handleItemDefaults:CZt}),EZt(r,i,a),a(\"orientation\"),a(\"valueformat\"),a(\"valuesuffix\");var E;l.x.length&&l.y.length&&(E=\"freeform\"),a(\"arrangement\",E),L5.coerceFont(a,\"textfont\",i.font,{autoShadowDflt:!0}),r._length=null};function CZt(e,t){function r(n,i){return L5.coerce(e,t,p7.link.colorscales,n,i)}r(\"label\"),r(\"cmin\"),r(\"cmax\"),r(\"colorscale\")}});var GJ=ye((Jbr,TWe)=>{\"use strict\";TWe.exports=LZt;function LZt(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=k[k.length-1];var E=e[b];if(a[b]=0&&s[b].push(o[L])}a[b]=S}else{if(n[b]===r[b]){for(var x=[],C=[],M=0,S=p.length-1;S>=0;--S){var g=p[S];if(i[g]=!1,x.push(g),C.push(s[g]),M+=s[g].length,o[g]=c.length,g===b){p.length=S;break}}c.push(x);for(var P=new Array(M),S=0;S{\"use strict\";var PZt=GJ(),P5=Dr(),IZt=Jm().wrap,Kk=P5.isArrayOrTypedArray,AWe=P5.isIndex,SWe=tc();function RZt(e){var t=e.node,r=e.link,n=[],i=Kk(r.color),a=Kk(r.hovercolor),o=Kk(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 _=v+1;e.node._count=_;var b,p=e.node.groups,k={};for(c=0;c0&&AWe(M,_)&&AWe(g,_)&&!(k.hasOwnProperty(M)&&k.hasOwnProperty(g)&&k[M]===k[g])){k.hasOwnProperty(g)&&(g=k[g]),k.hasOwnProperty(M)&&(M=k[M]),M=+M,g=+g,s[M]=s[g]=!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:g,value:+C}),x.source.push(M),x.target.push(g)}}var z=_+p.length,O=Kk(t.color),V=Kk(t.customdata),G=[];for(c=0;c_-1,childrenNodes:[],pointNumber:c,label:Z,color:O?t.color[c]:t.color,customdata:V?t.customdata[c]:t.customdata})}var H=!1;return DZt(z,x.source,x.target)&&(H=!0),{circular:H,links:n,nodes:G,groups:p,groupLookup:k}}function DZt(e,t,r){for(var n=P5.init2dArray(e,0),i=0;i1})}MWe.exports=function(t,r){var n=RZt(r);return IZt({circular:n.circular,_nodes:n.nodes,_links:n.links,_groups:n.groups,_groupLookup:n.groupLookup})}});var CWe=ye((g7,kWe)=>{(function(e,t){typeof g7==\"object\"&&typeof kWe!=\"undefined\"?t(g7):(e=e||self,t(e.d3=e.d3||{}))})(g7,function(e){\"use strict\";function t(C){var M=+this._x.call(null,C),g=+this._y.call(null,C);return r(this.cover(M,g),M,g,C)}function r(C,M,g,P){if(isNaN(M)||isNaN(g))return C;var T,z=C._root,O={data:P},V=C._x0,G=C._y0,Z=C._x1,H=C._y1,N,j,re,oe,_e,Ee,Ce,me;if(!z)return C._root=O,C;for(;z.length;)if((_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j,T=z,!(z=z[Ce=Ee<<1|_e]))return T[Ce]=O,C;if(re=+C._x.call(null,z.data),oe=+C._y.call(null,z.data),M===re&&g===oe)return O.next=z,T?T[Ce]=O:C._root=O,C;do T=T?T[Ce]=new Array(4):C._root=new Array(4),(_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j;while((Ce=Ee<<1|_e)===(me=(oe>=j)<<1|re>=N));return T[me]=z,T[Ce]=O,C}function n(C){var M,g,P=C.length,T,z,O=new Array(P),V=new Array(P),G=1/0,Z=1/0,H=-1/0,N=-1/0;for(g=0;gH&&(H=T),zN&&(N=z));if(G>H||Z>N)return this;for(this.cover(G,Z).cover(H,N),g=0;gC||C>=T||P>M||M>=z;)switch(Z=(MH||(V=oe.y0)>N||(G=oe.x1)=Ce)<<1|C>=Ee)&&(oe=j[j.length-1],j[j.length-1]=j[j.length-1-_e],j[j.length-1-_e]=oe)}else{var me=C-+this._x.call(null,re.data),ie=M-+this._y.call(null,re.data),Se=me*me+ie*ie;if(Se=(j=(O+G)/2))?O=j:G=j,(_e=N>=(re=(V+Z)/2))?V=re:Z=re,M=g,!(g=g[Ee=_e<<1|oe]))return this;if(!g.length)break;(M[Ee+1&3]||M[Ee+2&3]||M[Ee+3&3])&&(P=M,Ce=Ee)}for(;g.data!==C;)if(T=g,!(g=g.next))return this;return(z=g.next)&&delete g.next,T?(z?T.next=z:delete T.next,this):M?(z?M[Ee]=z:delete M[Ee],(g=M[0]||M[1]||M[2]||M[3])&&g===(M[3]||M[2]||M[1]||M[0])&&!g.length&&(P?P[Ce]=g:this._root=g),this):(this._root=z,this)}function c(C){for(var M=0,g=C.length;M{(function(e,t){t(typeof m7==\"object\"&&typeof LWe!=\"undefined\"?m7:e.d3=e.d3||{})})(m7,function(e){\"use strict\";var t=\"$\";function r(){}r.prototype=n.prototype={constructor:r,has:function(_){return t+_ in this},get:function(_){return this[t+_]},set:function(_,b){return this[t+_]=b,this},remove:function(_){var b=t+_;return b in this&&delete this[b]},clear:function(){for(var _ in this)_[0]===t&&delete this[_]},keys:function(){var _=[];for(var b in this)b[0]===t&&_.push(b.slice(1));return _},values:function(){var _=[];for(var b in this)b[0]===t&&_.push(this[b]);return _},entries:function(){var _=[];for(var b in this)b[0]===t&&_.push({key:b.slice(1),value:this[b]});return _},size:function(){var _=0;for(var b in this)b[0]===t&&++_;return _},empty:function(){for(var _ in this)if(_[0]===t)return!1;return!0},each:function(_){for(var b in this)b[0]===t&&_(this[b],b.slice(1),this)}};function n(_,b){var p=new r;if(_ instanceof r)_.each(function(x,C){p.set(C,x)});else if(Array.isArray(_)){var k=-1,E=_.length,S;if(b==null)for(;++k=_.length)return p!=null&&x.sort(p),k!=null?k(x):x;for(var P=-1,T=x.length,z=_[C++],O,V,G=n(),Z,H=M();++P_.length)return x;var M,g=b[C-1];return k!=null&&C>=_.length?M=x.entries():(M=[],x.each(function(P,T){M.push({key:T,values:L(P,C)})})),g!=null?M.sort(function(P,T){return g(P.key,T.key)}):M}return E={object:function(x){return S(x,0,a,o)},map:function(x){return S(x,0,s,l)},entries:function(x){return L(S(x,0,s,l),0)},key:function(x){return _.push(x),E},sortKeys:function(x){return b[_.length-1]=x,E},sortValues:function(x){return p=x,E},rollup:function(x){return k=x,E}}}function a(){return{}}function o(_,b,p){_[b]=p}function s(){return n()}function l(_,b,p){_.set(b,p)}function u(){}var c=n.prototype;u.prototype=f.prototype={constructor:u,has:c.has,add:function(_){return _+=\"\",this[t+_]=_,this},remove:c.remove,clear:c.clear,values:c.keys,size:c.size,empty:c.empty,each:c.each};function f(_,b){var p=new u;if(_ instanceof u)_.each(function(S){p.add(S)});else if(_){var k=-1,E=_.length;if(b==null)for(;++k{(function(e,t){typeof _7==\"object\"&&typeof PWe!=\"undefined\"?t(_7):(e=e||self,t(e.d3=e.d3||{}))})(_7,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 x7==\"object\"&&typeof RWe!=\"undefined\"?t(x7):(e=e||self,t(e.d3=e.d3||{}))})(x7,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=_.prototype={constructor:v,restart:function(C,M,g){if(typeof C!=\"function\")throw new TypeError(\"callback is not a function\");g=(g==null?h():+g)+(M==null?0:+M),!this._next&&o!==this&&(o?o._next=this:a=this,o=this),this._call=C,this._time=g,S()},stop:function(){this._call&&(this._call=null,this._time=1/0,S())}};function _(C,M,g){var P=new v;return P.restart(C,M,g),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 p(){l=(s=c.now())+u,t=r=0;try{b()}finally{t=0,E(),l=0}}function k(){var C=c.now(),M=C-s;M>i&&(u-=M,s=C)}function E(){for(var C,M=a,g,P=1/0;M;)M._call?(P>M._time&&(P=M._time),C=M,M=M._next):(g=M._next,M._next=null,M=C?C._next=g:a=g);o=C,S(P)}function S(C){if(!t){r&&(r=clearTimeout(r));var M=C-l;M>24?(C<1/0&&(r=setTimeout(p,C-c.now()-u)),n&&(n=clearInterval(n))):(n||(s=c.now(),n=setInterval(k,i)),t=1,f(p))}}function L(C,M,g){var P=new v;return M=M==null?0:+M,P.restart(function(T){P.stop(),C(T+M)},M,g),P}function x(C,M,g){var P=new v,T=M;return M==null?(P.restart(C,M,g),P):(M=+M,g=g==null?h():+g,P.restart(function z(O){O+=T,P.restart(z,T+=M,g),C(O)},M,g),P)}e.interval=x,e.now=h,e.timeout=L,e.timer=_,e.timerFlush=b,Object.defineProperty(e,\"__esModule\",{value:!0})})});var zWe=ye((b7,FWe)=>{(function(e,t){typeof b7==\"object\"&&typeof FWe!=\"undefined\"?t(b7,CWe(),y7(),IWe(),DWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(b7,function(e,t,r,n,i){\"use strict\";function a(C,M){var g;C==null&&(C=0),M==null&&(M=0);function P(){var T,z=g.length,O,V=0,G=0;for(T=0;TN.index){var Re=j-Fe.x-Fe.vx,ce=re-Fe.y-Fe.vy,Ze=Re*Re+ce*ce;Zej+ge||Lere+ge||AeG.r&&(G.r=G[Z].r)}function V(){if(M){var G,Z=M.length,H;for(g=new Array(Z),G=0;G1?(_e==null?V.remove(oe):V.set(oe,re(_e)),M):V.get(oe)},find:function(oe,_e,Ee){var Ce=0,me=C.length,ie,Se,Le,Ae,Fe;for(Ee==null?Ee=1/0:Ee*=Ee,Ce=0;Ce1?(Z.on(oe,_e),M):Z.on(oe)}}}function E(){var C,M,g,P=o(-30),T,z=1,O=1/0,V=.81;function G(j){var re,oe=C.length,_e=t.quadtree(C,v,_).visitAfter(H);for(g=j,re=0;re=O)return;(j.data!==M||j.next)&&(Ee===0&&(Ee=s(),ie+=Ee*Ee),Ce===0&&(Ce=s(),ie+=Ce*Ce),ie{(function(e,t){typeof w7==\"object\"&&typeof OWe!=\"undefined\"?t(w7):(e=e||self,t(e.d3=e.d3||{}))})(w7,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,_=c-l,b=h-s,p=d-l,k=b*b+p*p;if(f<0)throw new Error(\"negative radius: \"+f);if(this._x1===null)this._+=\"M\"+(this._x1=s)+\",\"+(this._y1=l);else if(k>n)if(!(Math.abs(p*v-_*b)>n)||!f)this._+=\"L\"+(this._x1=s)+\",\"+(this._y1=l);else{var E=u-h,S=c-d,L=v*v+_*_,x=E*E+S*S,C=Math.sqrt(L),M=Math.sqrt(k),g=f*Math.tan((t-Math.acos((L+k-x)/(2*C*M)))/2),P=g/M,T=g/C;Math.abs(P-1)>n&&(this._+=\"L\"+(s+P*b)+\",\"+(l+P*p)),this._+=\"A\"+f+\",\"+f+\",0,0,\"+ +(p*E>b*S)+\",\"+(this._x1=s+T*v)+\",\"+(this._y1=l+T*_)}},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),_=s+d,b=l+v,p=1^h,k=h?c-f:f-c;if(u<0)throw new Error(\"negative radius: \"+u);this._x1===null?this._+=\"M\"+_+\",\"+b:(Math.abs(this._x1-_)>n||Math.abs(this._y1-b)>n)&&(this._+=\"L\"+_+\",\"+b),u&&(k<0&&(k=k%r+r),k>i?this._+=\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(s-d)+\",\"+(l-v)+\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(this._x1=_)+\",\"+(this._y1=b):k>n&&(this._+=\"A\"+u+\",\"+u+\",0,\"+ +(k>=t)+\",\"+p+\",\"+(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 HJ=ye((T7,BWe)=>{(function(e,t){typeof T7==\"object\"&&typeof BWe!=\"undefined\"?t(T7,qWe()):(e=e||self,t(e.d3=e.d3||{},e.d3))})(T7,function(e,t){\"use strict\";function r(Mt){return function(){return Mt}}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(Mt){return Mt>1?0:Mt<-1?f:Math.acos(Mt)}function _(Mt){return Mt>=1?h:Mt<=-1?-h:Math.asin(Mt)}function b(Mt){return Mt.innerRadius}function p(Mt){return Mt.outerRadius}function k(Mt){return Mt.startAngle}function E(Mt){return Mt.endAngle}function S(Mt){return Mt&&Mt.padAngle}function L(Mt,kr,Jr,vi,hn,An,Mn,Li){var _n=Jr-Mt,ya=vi-kr,Jn=Mn-hn,Ma=Li-An,_o=Ma*_n-Jn*ya;if(!(_o*_oZl*Zl+Su*Su&&(As=Ks,cl=zs),{cx:As,cy:cl,x01:-Jn,y01:-Ma,x11:As*(hn/zl-1),y11:cl*(hn/zl-1)}}function C(){var Mt=b,kr=p,Jr=r(0),vi=null,hn=k,An=E,Mn=S,Li=null;function _n(){var ya,Jn,Ma=+Mt.apply(this,arguments),_o=+kr.apply(this,arguments),No=hn.apply(this,arguments)-h,po=An.apply(this,arguments)-h,Lo=n(po-No),ko=po>No;if(Li||(Li=ya=t.path()),_oc))Li.moveTo(0,0);else if(Lo>d-c)Li.moveTo(_o*a(No),_o*l(No)),Li.arc(0,0,_o,No,po,!ko),Ma>c&&(Li.moveTo(Ma*a(po),Ma*l(po)),Li.arc(0,0,Ma,po,No,ko));else{var Ds=No,Fs=po,ll=No,ul=po,zl=Lo,us=Lo,il=Mn.apply(this,arguments)/2,As=il>c&&(vi?+vi.apply(this,arguments):u(Ma*Ma+_o*_o)),cl=s(n(_o-Ma)/2,+Jr.apply(this,arguments)),Ks=cl,zs=cl,Io,ls;if(As>c){var Zl=_(As/Ma*l(il)),Su=_(As/_o*l(il));(zl-=Zl*2)>c?(Zl*=ko?1:-1,ll+=Zl,ul-=Zl):(zl=0,ll=ul=(No+po)/2),(us-=Su*2)>c?(Su*=ko?1:-1,Ds+=Su,Fs-=Su):(us=0,Ds=Fs=(No+po)/2)}var nc=_o*a(Ds),bs=_o*l(Ds),Rn=Ma*a(ul),_a=Ma*l(ul);if(cl>c){var Vu=_o*a(Fs),Ol=_o*l(Fs),xo=Ma*a(ll),Yl=Ma*l(ll),Ns;if(Loc?zs>c?(Io=x(xo,Yl,nc,bs,_o,zs,ko),ls=x(Vu,Ol,Rn,_a,_o,zs,ko),Li.moveTo(Io.cx+Io.x01,Io.cy+Io.y01),zsc)||!(zl>c)?Li.lineTo(Rn,_a):Ks>c?(Io=x(Rn,_a,Vu,Ol,Ma,-Ks,ko),ls=x(nc,bs,xo,Yl,Ma,-Ks,ko),Li.lineTo(Io.cx+Io.x01,Io.cy+Io.y01),Ks=_o;--No)Li.point(Fs[No],ll[No]);Li.lineEnd(),Li.areaEnd()}ko&&(Fs[Ma]=+Mt(Lo,Ma,Jn),ll[Ma]=+Jr(Lo,Ma,Jn),Li.point(kr?+kr(Lo,Ma,Jn):Fs[Ma],vi?+vi(Lo,Ma,Jn):ll[Ma]))}if(Ds)return Li=null,Ds+\"\"||null}function ya(){return z().defined(hn).curve(Mn).context(An)}return _n.x=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),kr=null,_n):Mt},_n.x0=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),_n):Mt},_n.x1=function(Jn){return arguments.length?(kr=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):kr},_n.y=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),vi=null,_n):Jr},_n.y0=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),_n):Jr},_n.y1=function(Jn){return arguments.length?(vi=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):vi},_n.lineX0=_n.lineY0=function(){return ya().x(Mt).y(Jr)},_n.lineY1=function(){return ya().x(Mt).y(vi)},_n.lineX1=function(){return ya().x(kr).y(Jr)},_n.defined=function(Jn){return arguments.length?(hn=typeof Jn==\"function\"?Jn:r(!!Jn),_n):hn},_n.curve=function(Jn){return arguments.length?(Mn=Jn,An!=null&&(Li=Mn(An)),_n):Mn},_n.context=function(Jn){return arguments.length?(Jn==null?An=Li=null:Li=Mn(An=Jn),_n):An},_n}function V(Mt,kr){return krMt?1:kr>=Mt?0:NaN}function G(Mt){return Mt}function Z(){var Mt=G,kr=V,Jr=null,vi=r(0),hn=r(d),An=r(0);function Mn(Li){var _n,ya=Li.length,Jn,Ma,_o=0,No=new Array(ya),po=new Array(ya),Lo=+vi.apply(this,arguments),ko=Math.min(d,Math.max(-d,hn.apply(this,arguments)-Lo)),Ds,Fs=Math.min(Math.abs(ko)/ya,An.apply(this,arguments)),ll=Fs*(ko<0?-1:1),ul;for(_n=0;_n0&&(_o+=ul);for(kr!=null?No.sort(function(zl,us){return kr(po[zl],po[us])}):Jr!=null&&No.sort(function(zl,us){return Jr(Li[zl],Li[us])}),_n=0,Ma=_o?(ko-ya*ll)/_o:0;_n0?ul*Ma:0)+ll,po[Jn]={data:Li[Jn],index:_n,value:ul,startAngle:Lo,endAngle:Ds,padAngle:Fs};return po}return Mn.value=function(Li){return arguments.length?(Mt=typeof Li==\"function\"?Li:r(+Li),Mn):Mt},Mn.sortValues=function(Li){return arguments.length?(kr=Li,Jr=null,Mn):kr},Mn.sort=function(Li){return arguments.length?(Jr=Li,kr=null,Mn):Jr},Mn.startAngle=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.endAngle=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.padAngle=function(Li){return arguments.length?(An=typeof Li==\"function\"?Li:r(+Li),Mn):An},Mn}var H=j(g);function N(Mt){this._curve=Mt}N.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(Mt,kr){this._curve.point(kr*Math.sin(Mt),kr*-Math.cos(Mt))}};function j(Mt){function kr(Jr){return new N(Mt(Jr))}return kr._curve=Mt,kr}function re(Mt){var kr=Mt.curve;return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt.curve=function(Jr){return arguments.length?kr(j(Jr)):kr()._curve},Mt}function oe(){return re(z().curve(H))}function _e(){var Mt=O().curve(H),kr=Mt.curve,Jr=Mt.lineX0,vi=Mt.lineX1,hn=Mt.lineY0,An=Mt.lineY1;return Mt.angle=Mt.x,delete Mt.x,Mt.startAngle=Mt.x0,delete Mt.x0,Mt.endAngle=Mt.x1,delete Mt.x1,Mt.radius=Mt.y,delete Mt.y,Mt.innerRadius=Mt.y0,delete Mt.y0,Mt.outerRadius=Mt.y1,delete Mt.y1,Mt.lineStartAngle=function(){return re(Jr())},delete Mt.lineX0,Mt.lineEndAngle=function(){return re(vi())},delete Mt.lineX1,Mt.lineInnerRadius=function(){return re(hn())},delete Mt.lineY0,Mt.lineOuterRadius=function(){return re(An())},delete Mt.lineY1,Mt.curve=function(Mn){return arguments.length?kr(j(Mn)):kr()._curve},Mt}function Ee(Mt,kr){return[(kr=+kr)*Math.cos(Mt-=Math.PI/2),kr*Math.sin(Mt)]}var Ce=Array.prototype.slice;function me(Mt){return Mt.source}function ie(Mt){return Mt.target}function Se(Mt){var kr=me,Jr=ie,vi=P,hn=T,An=null;function Mn(){var Li,_n=Ce.call(arguments),ya=kr.apply(this,_n),Jn=Jr.apply(this,_n);if(An||(An=Li=t.path()),Mt(An,+vi.apply(this,(_n[0]=ya,_n)),+hn.apply(this,_n),+vi.apply(this,(_n[0]=Jn,_n)),+hn.apply(this,_n)),Li)return An=null,Li+\"\"||null}return Mn.source=function(Li){return arguments.length?(kr=Li,Mn):kr},Mn.target=function(Li){return arguments.length?(Jr=Li,Mn):Jr},Mn.x=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.y=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.context=function(Li){return arguments.length?(An=Li==null?null:Li,Mn):An},Mn}function Le(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr=(kr+vi)/2,Jr,kr,hn,vi,hn)}function Ae(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr,Jr=(Jr+hn)/2,vi,Jr,vi,hn)}function Fe(Mt,kr,Jr,vi,hn){var An=Ee(kr,Jr),Mn=Ee(kr,Jr=(Jr+hn)/2),Li=Ee(vi,Jr),_n=Ee(vi,hn);Mt.moveTo(An[0],An[1]),Mt.bezierCurveTo(Mn[0],Mn[1],Li[0],Li[1],_n[0],_n[1])}function Pe(){return Se(Le)}function ge(){return Se(Ae)}function Re(){var Mt=Se(Fe);return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt}var ce={draw:function(Mt,kr){var Jr=Math.sqrt(kr/f);Mt.moveTo(Jr,0),Mt.arc(0,0,Jr,0,d)}},Ze={draw:function(Mt,kr){var Jr=Math.sqrt(kr/5)/2;Mt.moveTo(-3*Jr,-Jr),Mt.lineTo(-Jr,-Jr),Mt.lineTo(-Jr,-3*Jr),Mt.lineTo(Jr,-3*Jr),Mt.lineTo(Jr,-Jr),Mt.lineTo(3*Jr,-Jr),Mt.lineTo(3*Jr,Jr),Mt.lineTo(Jr,Jr),Mt.lineTo(Jr,3*Jr),Mt.lineTo(-Jr,3*Jr),Mt.lineTo(-Jr,Jr),Mt.lineTo(-3*Jr,Jr),Mt.closePath()}},ut=Math.sqrt(1/3),pt=ut*2,Zt={draw:function(Mt,kr){var Jr=Math.sqrt(kr/pt),vi=Jr*ut;Mt.moveTo(0,-Jr),Mt.lineTo(vi,0),Mt.lineTo(0,Jr),Mt.lineTo(-vi,0),Mt.closePath()}},st=.8908130915292852,lt=Math.sin(f/10)/Math.sin(7*f/10),Gt=Math.sin(d/10)*lt,Nt=-Math.cos(d/10)*lt,Jt={draw:function(Mt,kr){var Jr=Math.sqrt(kr*st),vi=Gt*Jr,hn=Nt*Jr;Mt.moveTo(0,-Jr),Mt.lineTo(vi,hn);for(var An=1;An<5;++An){var Mn=d*An/5,Li=Math.cos(Mn),_n=Math.sin(Mn);Mt.lineTo(_n*Jr,-Li*Jr),Mt.lineTo(Li*vi-_n*hn,_n*vi+Li*hn)}Mt.closePath()}},sr={draw:function(Mt,kr){var Jr=Math.sqrt(kr),vi=-Jr/2;Mt.rect(vi,vi,Jr,Jr)}},wr=Math.sqrt(3),cr={draw:function(Mt,kr){var Jr=-Math.sqrt(kr/(wr*3));Mt.moveTo(0,Jr*2),Mt.lineTo(-wr*Jr,-Jr),Mt.lineTo(wr*Jr,-Jr),Mt.closePath()}},$e=-.5,St=Math.sqrt(3)/2,Qt=1/Math.sqrt(12),Vt=(Qt/2+1)*3,_t={draw:function(Mt,kr){var Jr=Math.sqrt(kr/Vt),vi=Jr/2,hn=Jr*Qt,An=vi,Mn=Jr*Qt+Jr,Li=-An,_n=Mn;Mt.moveTo(vi,hn),Mt.lineTo(An,Mn),Mt.lineTo(Li,_n),Mt.lineTo($e*vi-St*hn,St*vi+$e*hn),Mt.lineTo($e*An-St*Mn,St*An+$e*Mn),Mt.lineTo($e*Li-St*_n,St*Li+$e*_n),Mt.lineTo($e*vi+St*hn,$e*hn-St*vi),Mt.lineTo($e*An+St*Mn,$e*Mn-St*An),Mt.lineTo($e*Li+St*_n,$e*_n-St*Li),Mt.closePath()}},It=[ce,Ze,Zt,sr,Jt,cr,_t];function mt(){var Mt=r(ce),kr=r(64),Jr=null;function vi(){var hn;if(Jr||(Jr=hn=t.path()),Mt.apply(this,arguments).draw(Jr,+kr.apply(this,arguments)),hn)return Jr=null,hn+\"\"||null}return vi.type=function(hn){return arguments.length?(Mt=typeof hn==\"function\"?hn:r(hn),vi):Mt},vi.size=function(hn){return arguments.length?(kr=typeof hn==\"function\"?hn:r(+hn),vi):kr},vi.context=function(hn){return arguments.length?(Jr=hn==null?null:hn,vi):Jr},vi}function er(){}function lr(Mt,kr,Jr){Mt._context.bezierCurveTo((2*Mt._x0+Mt._x1)/3,(2*Mt._y0+Mt._y1)/3,(Mt._x0+2*Mt._x1)/3,(Mt._y0+2*Mt._y1)/3,(Mt._x0+4*Mt._x1+kr)/6,(Mt._y0+4*Mt._y1+Jr)/6)}function Tr(Mt){this._context=Mt}Tr.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:lr(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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);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:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Lr(Mt){return new Tr(Mt)}function ti(Mt){this._context=Mt}ti.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x2=Mt,this._y2=kr;break;case 1:this._point=2,this._x3=Mt,this._y3=kr;break;case 2:this._point=3,this._x4=Mt,this._y4=kr,this._context.moveTo((this._x0+4*this._x1+Mt)/6,(this._y0+4*this._y1+kr)/6);break;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Br(Mt){return new ti(Mt)}function Vr(Mt){this._context=Mt}Vr.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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var Jr=(this._x0+4*this._x1+Mt)/6,vi=(this._y0+4*this._y1+kr)/6;this._line?this._context.lineTo(Jr,vi):this._context.moveTo(Jr,vi);break;case 3:this._point=4;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function dt(Mt){return new Vr(Mt)}function Ge(Mt,kr){this._basis=new Tr(Mt),this._beta=kr}Ge.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length-1;if(Jr>0)for(var vi=Mt[0],hn=kr[0],An=Mt[Jr]-vi,Mn=kr[Jr]-hn,Li=-1,_n;++Li<=Jr;)_n=Li/Jr,this._basis.point(this._beta*Mt[Li]+(1-this._beta)*(vi+_n*An),this._beta*kr[Li]+(1-this._beta)*(hn+_n*Mn));this._x=this._y=null,this._basis.lineEnd()},point:function(Mt,kr){this._x.push(+Mt),this._y.push(+kr)}};var Je=function Mt(kr){function Jr(vi){return kr===1?new Tr(vi):new Ge(vi,kr)}return Jr.beta=function(vi){return Mt(+vi)},Jr}(.85);function je(Mt,kr,Jr){Mt._context.bezierCurveTo(Mt._x1+Mt._k*(Mt._x2-Mt._x0),Mt._y1+Mt._k*(Mt._y2-Mt._y0),Mt._x2+Mt._k*(Mt._x1-kr),Mt._y2+Mt._k*(Mt._y1-Jr),Mt._x2,Mt._y2)}function tt(Mt,kr){this._context=Mt,this._k=(1-kr)/6}tt.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:je(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2,this._x1=Mt,this._y1=kr;break;case 2:this._point=3;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xt=function Mt(kr){function Jr(vi){return new tt(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function Ie(Mt,kr){this._context=Mt,this._k=(1-kr)/6}Ie.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xe=function Mt(kr){function Jr(vi){return new Ie(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ke(Mt,kr){this._context=Mt,this._k=(1-kr)/6}ke.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(Mt,kr){switch(Mt=+Mt,kr=+kr,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:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vt=function Mt(kr){function Jr(vi){return new ke(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ir(Mt,kr,Jr){var vi=Mt._x1,hn=Mt._y1,An=Mt._x2,Mn=Mt._y2;if(Mt._l01_a>c){var Li=2*Mt._l01_2a+3*Mt._l01_a*Mt._l12_a+Mt._l12_2a,_n=3*Mt._l01_a*(Mt._l01_a+Mt._l12_a);vi=(vi*Li-Mt._x0*Mt._l12_2a+Mt._x2*Mt._l01_2a)/_n,hn=(hn*Li-Mt._y0*Mt._l12_2a+Mt._y2*Mt._l01_2a)/_n}if(Mt._l23_a>c){var ya=2*Mt._l23_2a+3*Mt._l23_a*Mt._l12_a+Mt._l12_2a,Jn=3*Mt._l23_a*(Mt._l23_a+Mt._l12_a);An=(An*ya+Mt._x1*Mt._l23_2a-kr*Mt._l12_2a)/Jn,Mn=(Mn*ya+Mt._y1*Mt._l23_2a-Jr*Mt._l12_2a)/Jn}Mt._context.bezierCurveTo(vi,hn,An,Mn,Mt._x2,Mt._y2)}function ar(Mt,kr){this._context=Mt,this._alpha=kr}ar.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vr=function Mt(kr){function Jr(vi){return kr?new ar(vi,kr):new tt(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ii(Mt,kr){this._context=Mt,this._alpha=kr}ii.prototype={areaStart:er,areaEnd:er,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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var pi=function Mt(kr){function Jr(vi){return kr?new ii(vi,kr):new Ie(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function $r(Mt,kr){this._context=Mt,this._alpha=kr}$r.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,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:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var di=function Mt(kr){function Jr(vi){return kr?new $r(vi,kr):new ke(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ji(Mt){this._context=Mt}ji.prototype={areaStart:er,areaEnd:er,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(Mt,kr){Mt=+Mt,kr=+kr,this._point?this._context.lineTo(Mt,kr):(this._point=1,this._context.moveTo(Mt,kr))}};function In(Mt){return new ji(Mt)}function wi(Mt){return Mt<0?-1:1}function On(Mt,kr,Jr){var vi=Mt._x1-Mt._x0,hn=kr-Mt._x1,An=(Mt._y1-Mt._y0)/(vi||hn<0&&-0),Mn=(Jr-Mt._y1)/(hn||vi<0&&-0),Li=(An*hn+Mn*vi)/(vi+hn);return(wi(An)+wi(Mn))*Math.min(Math.abs(An),Math.abs(Mn),.5*Math.abs(Li))||0}function qn(Mt,kr){var Jr=Mt._x1-Mt._x0;return Jr?(3*(Mt._y1-Mt._y0)/Jr-kr)/2:kr}function Fn(Mt,kr,Jr){var vi=Mt._x0,hn=Mt._y0,An=Mt._x1,Mn=Mt._y1,Li=(An-vi)/3;Mt._context.bezierCurveTo(vi+Li,hn+Li*kr,An-Li,Mn-Li*Jr,An,Mn)}function ra(Mt){this._context=Mt}ra.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:Fn(this,this._t0,qn(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){var Jr=NaN;if(Mt=+Mt,kr=+kr,!(Mt===this._x1&&kr===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3,Fn(this,qn(this,Jr=On(this,Mt,kr)),Jr);break;default:Fn(this,this._t0,Jr=On(this,Mt,kr));break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr,this._t0=Jr}}};function la(Mt){this._context=new Ut(Mt)}(la.prototype=Object.create(ra.prototype)).point=function(Mt,kr){ra.prototype.point.call(this,kr,Mt)};function Ut(Mt){this._context=Mt}Ut.prototype={moveTo:function(Mt,kr){this._context.moveTo(kr,Mt)},closePath:function(){this._context.closePath()},lineTo:function(Mt,kr){this._context.lineTo(kr,Mt)},bezierCurveTo:function(Mt,kr,Jr,vi,hn,An){this._context.bezierCurveTo(kr,Mt,vi,Jr,An,hn)}};function wt(Mt){return new ra(Mt)}function rr(Mt){return new la(Mt)}function nr(Mt){this._context=Mt}nr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length;if(Jr)if(this._line?this._context.lineTo(Mt[0],kr[0]):this._context.moveTo(Mt[0],kr[0]),Jr===2)this._context.lineTo(Mt[1],kr[1]);else for(var vi=Er(Mt),hn=Er(kr),An=0,Mn=1;Mn=0;--kr)hn[kr]=(Mn[kr]-hn[kr+1])/An[kr];for(An[Jr-1]=(Mt[Jr]+hn[Jr-1])/2,kr=0;kr=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,kr),this._context.lineTo(Mt,kr);else{var Jr=this._x*(1-this._t)+Mt*this._t;this._context.lineTo(Jr,this._y),this._context.lineTo(Jr,kr)}break}}this._x=Mt,this._y=kr}};function Qr(Mt){return new ri(Mt,.5)}function Oi(Mt){return new ri(Mt,0)}function $i(Mt){return new ri(Mt,1)}function tn(Mt,kr){if((Mn=Mt.length)>1)for(var Jr=1,vi,hn,An=Mt[kr[0]],Mn,Li=An.length;Jr=0;)Jr[kr]=kr;return Jr}function yn(Mt,kr){return Mt[kr]}function Sn(){var Mt=r([]),kr=fn,Jr=tn,vi=yn;function hn(An){var Mn=Mt.apply(this,arguments),Li,_n=An.length,ya=Mn.length,Jn=new Array(ya),Ma;for(Li=0;Li0){for(var Jr,vi,hn=0,An=Mt[0].length,Mn;hn0)for(var Jr,vi=0,hn,An,Mn,Li,_n,ya=Mt[kr[0]].length;vi0?(hn[0]=Mn,hn[1]=Mn+=An):An<0?(hn[1]=Li,hn[0]=Li+=An):(hn[0]=0,hn[1]=An)}function ma(Mt,kr){if((hn=Mt.length)>0){for(var Jr=0,vi=Mt[kr[0]],hn,An=vi.length;Jr0)||!((An=(hn=Mt[kr[0]]).length)>0))){for(var Jr=0,vi=1,hn,An,Mn;viAn&&(An=hn,Jr=kr);return Jr}function da(Mt){var kr=Mt.map(Wn);return fn(Mt).sort(function(Jr,vi){return kr[Jr]-kr[vi]})}function Wn(Mt){for(var kr=0,Jr=-1,vi=Mt.length,hn;++Jr{(function(e,t){typeof A7==\"object\"&&typeof NWe!=\"undefined\"?t(A7,nk(),y7(),HJ()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3)})(A7,function(e,t,r,n){\"use strict\";function i(g){return g.target.depth}function a(g){return g.depth}function o(g,P){return P-1-g.height}function s(g,P){return g.sourceLinks.length?g.depth:P-1}function l(g){return g.targetLinks.length?g.depth:g.sourceLinks.length?t.min(g.sourceLinks,i)-1:0}function u(g){return function(){return g}}function c(g,P){return h(g.source,P.source)||g.index-P.index}function f(g,P){return h(g.target,P.target)||g.index-P.index}function h(g,P){return g.y0-P.y0}function d(g){return g.value}function v(g){return(g.y0+g.y1)/2}function _(g){return v(g.source)*g.value}function b(g){return v(g.target)*g.value}function p(g){return g.index}function k(g){return g.nodes}function E(g){return g.links}function S(g,P){var T=g.get(P);if(!T)throw new Error(\"missing: \"+P);return T}var L=function(){var g=0,P=0,T=1,z=1,O=24,V=8,G=p,Z=s,H=k,N=E,j=32,re=2/3;function oe(){var Se={nodes:H.apply(null,arguments),links:N.apply(null,arguments)};return _e(Se),Ee(Se),Ce(Se),me(Se,j),ie(Se),Se}oe.update=function(Se){return ie(Se),Se},oe.nodeId=function(Se){return arguments.length?(G=typeof Se==\"function\"?Se:u(Se),oe):G},oe.nodeAlign=function(Se){return arguments.length?(Z=typeof Se==\"function\"?Se:u(Se),oe):Z},oe.nodeWidth=function(Se){return arguments.length?(O=+Se,oe):O},oe.nodePadding=function(Se){return arguments.length?(V=+Se,oe):V},oe.nodes=function(Se){return arguments.length?(H=typeof Se==\"function\"?Se:u(Se),oe):H},oe.links=function(Se){return arguments.length?(N=typeof Se==\"function\"?Se:u(Se),oe):N},oe.size=function(Se){return arguments.length?(g=P=0,T=+Se[0],z=+Se[1],oe):[T-g,z-P]},oe.extent=function(Se){return arguments.length?(g=+Se[0][0],T=+Se[1][0],P=+Se[0][1],z=+Se[1][1],oe):[[g,P],[T,z]]},oe.iterations=function(Se){return arguments.length?(j=+Se,oe):j};function _e(Se){Se.nodes.forEach(function(Ae,Fe){Ae.index=Fe,Ae.sourceLinks=[],Ae.targetLinks=[]});var Le=r.map(Se.nodes,G);Se.links.forEach(function(Ae,Fe){Ae.index=Fe;var Pe=Ae.source,ge=Ae.target;typeof Pe!=\"object\"&&(Pe=Ae.source=S(Le,Pe)),typeof ge!=\"object\"&&(ge=Ae.target=S(Le,ge)),Pe.sourceLinks.push(Ae),ge.targetLinks.push(Ae)})}function Ee(Se){Se.nodes.forEach(function(Le){Le.value=Math.max(t.sum(Le.sourceLinks,d),t.sum(Le.targetLinks,d))})}function Ce(Se){var Le,Ae,Fe;for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.depth=Fe,ge.sourceLinks.forEach(function(Re){Ae.indexOf(Re.target)<0&&Ae.push(Re.target)})});for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.height=Fe,ge.targetLinks.forEach(function(Re){Ae.indexOf(Re.source)<0&&Ae.push(Re.source)})});var Pe=(T-g-O)/(Fe-1);Se.nodes.forEach(function(ge){ge.x1=(ge.x0=g+Math.max(0,Math.min(Fe-1,Math.floor(Z.call(null,ge,Fe))))*Pe)+O})}function me(Se){var Le=r.nest().key(function(Ze){return Ze.x0}).sortKeys(t.ascending).entries(Se.nodes).map(function(Ze){return Ze.values});Pe(),ce();for(var Ae=1,Fe=j;Fe>0;--Fe)Re(Ae*=.99),ce(),ge(Ae),ce();function Pe(){var Ze=t.max(Le,function(Zt){return Zt.length}),ut=re*(z-P)/(Ze-1);V>ut&&(V=ut);var pt=t.min(Le,function(Zt){return(z-P-(Zt.length-1)*V)/t.sum(Zt,d)});Le.forEach(function(Zt){Zt.forEach(function(st,lt){st.y1=(st.y0=lt)+st.value*pt})}),Se.links.forEach(function(Zt){Zt.width=Zt.value*pt})}function ge(Ze){Le.forEach(function(ut){ut.forEach(function(pt){if(pt.targetLinks.length){var Zt=(t.sum(pt.targetLinks,_)/t.sum(pt.targetLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function Re(Ze){Le.slice().reverse().forEach(function(ut){ut.forEach(function(pt){if(pt.sourceLinks.length){var Zt=(t.sum(pt.sourceLinks,b)/t.sum(pt.sourceLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function ce(){Le.forEach(function(Ze){var ut,pt,Zt=P,st=Ze.length,lt;for(Ze.sort(h),lt=0;lt0&&(ut.y0+=pt,ut.y1+=pt),Zt=ut.y1+V;if(pt=Zt-V-z,pt>0)for(Zt=ut.y0-=pt,ut.y1-=pt,lt=st-2;lt>=0;--lt)ut=Ze[lt],pt=ut.y1+V-Zt,pt>0&&(ut.y0-=pt,ut.y1-=pt),Zt=ut.y0})}}function ie(Se){Se.nodes.forEach(function(Le){Le.sourceLinks.sort(f),Le.targetLinks.sort(c)}),Se.nodes.forEach(function(Le){var Ae=Le.y0,Fe=Ae;Le.sourceLinks.forEach(function(Pe){Pe.y0=Ae+Pe.width/2,Ae+=Pe.width}),Le.targetLinks.forEach(function(Pe){Pe.y1=Fe+Pe.width/2,Fe+=Pe.width})})}return oe};function x(g){return[g.source.x1,g.y0]}function C(g){return[g.target.x0,g.y1]}var M=function(){return n.linkHorizontal().source(x).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 GWe=ye((Qbr,VWe)=>{var FZt=GJ();VWe.exports=function(t,r){var n=[],i=[],a=[],o={},s=[],l;function u(E){a[E]=!1,o.hasOwnProperty(E)&&Object.keys(o[E]).forEach(function(S){delete o[E][S],a[S]&&u(S)})}function c(E){var S=!1;i.push(E),a[E]=!0;var L,x;for(L=0;L=E})}function d(E){h(E);for(var S=t,L=FZt(S),x=L.components.filter(function(O){return O.length>1}),C=1/0,M,g=0;g{(function(e,t){typeof S7==\"object\"&&typeof HWe!=\"undefined\"?t(S7,nk(),y7(),HJ(),GWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,null)})(S7,function(e,t,r,n,i){\"use strict\";i=i&&i.hasOwnProperty(\"default\")?i.default:i;function a(st){return st.target.depth}function o(st){return st.depth}function s(st,lt){return lt-1-st.height}function l(st,lt){return st.sourceLinks.length?st.depth:lt-1}function u(st){return st.targetLinks.length?st.depth:st.sourceLinks.length?t.min(st.sourceLinks,a)-1:0}function c(st){return function(){return st}}var f=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(st){return typeof st}:function(st){return st&&typeof Symbol==\"function\"&&st.constructor===Symbol&&st!==Symbol.prototype?\"symbol\":typeof st};function h(st,lt){return v(st.source,lt.source)||st.index-lt.index}function d(st,lt){return v(st.target,lt.target)||st.index-lt.index}function v(st,lt){return st.partOfCycle===lt.partOfCycle?st.y0-lt.y0:st.circularLinkType===\"top\"||lt.circularLinkType===\"bottom\"?-1:1}function _(st){return st.value}function b(st){return(st.y0+st.y1)/2}function p(st){return b(st.source)}function k(st){return b(st.target)}function E(st){return st.index}function S(st){return st.nodes}function L(st){return st.links}function x(st,lt){var Gt=st.get(lt);if(!Gt)throw new Error(\"missing: \"+lt);return Gt}function C(st,lt){return lt(st)}var M=25,g=10,P=.3;function T(){var st=0,lt=0,Gt=1,Nt=1,Jt=24,sr,wr=E,cr=l,$e=S,St=L,Qt=32,Vt=2,_t,It=null;function mt(){var dt={nodes:$e.apply(null,arguments),links:St.apply(null,arguments)};er(dt),z(dt,wr,It),lr(dt),ti(dt),O(dt,wr),Br(dt,Qt,wr),Vr(dt);for(var Ge=4,Je=0;Je0?Ge+M+g:Ge,Je=Je>0?Je+M+g:Je,je=je>0?je+M+g:je,tt=tt>0?tt+M+g:tt,{top:Ge,bottom:Je,left:tt,right:je}}function Lr(dt,Ge){var Je=t.max(dt.nodes,function(vt){return vt.column}),je=Gt-st,tt=Nt-lt,xt=je+Ge.right+Ge.left,Ie=tt+Ge.top+Ge.bottom,xe=je/xt,ke=tt/Ie;return st=st*xe+Ge.left,Gt=Ge.right==0?Gt:Gt*xe,lt=lt*ke+Ge.top,Nt=Nt*ke,dt.nodes.forEach(function(vt){vt.x0=st+vt.column*((Gt-st-Jt)/Je),vt.x1=vt.x0+Jt}),ke}function ti(dt){var Ge,Je,je;for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.depth=je,tt.sourceLinks.forEach(function(xt){Je.indexOf(xt.target)<0&&!xt.circular&&Je.push(xt.target)})});for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.height=je,tt.targetLinks.forEach(function(xt){Je.indexOf(xt.source)<0&&!xt.circular&&Je.push(xt.source)})});dt.nodes.forEach(function(tt){tt.column=Math.floor(cr.call(null,tt,je))})}function Br(dt,Ge,Je){var je=r.nest().key(function(vt){return vt.column}).sortKeys(t.ascending).entries(dt.nodes).map(function(vt){return vt.values});Ie(Je),ke();for(var tt=1,xt=Ge;xt>0;--xt)xe(tt*=.99,Je),ke();function Ie(vt){if(_t){var ir=1/0;je.forEach(function(pi){var $r=Nt*_t/(pi.length+1);ir=$r0))if(pi==0&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else if(pi==ar-1&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else{var ji=0,In=t.mean($r.sourceLinks,k),wi=t.mean($r.targetLinks,p);In&&wi?ji=(In+wi)/2:ji=In||wi;var On=(ji-b($r))*vt;$r.y0+=On,$r.y1+=On}})})}function ke(){je.forEach(function(vt){var ir,ar,vr=lt,ii=vt.length,pi;for(vt.sort(v),pi=0;pi0&&(ir.y0+=ar,ir.y1+=ar),vr=ir.y1+sr;if(ar=vr-sr-Nt,ar>0)for(vr=ir.y0-=ar,ir.y1-=ar,pi=ii-2;pi>=0;--pi)ir=vt[pi],ar=ir.y1+sr-vr,ar>0&&(ir.y0-=ar,ir.y1-=ar),vr=ir.y0})}}function Vr(dt){dt.nodes.forEach(function(Ge){Ge.sourceLinks.sort(d),Ge.targetLinks.sort(h)}),dt.nodes.forEach(function(Ge){var Je=Ge.y0,je=Je,tt=Ge.y1,xt=tt;Ge.sourceLinks.forEach(function(Ie){Ie.circular?(Ie.y0=tt-Ie.width/2,tt=tt-Ie.width):(Ie.y0=Je+Ie.width/2,Je+=Ie.width)}),Ge.targetLinks.forEach(function(Ie){Ie.circular?(Ie.y1=xt-Ie.width/2,xt=xt-Ie.width):(Ie.y1=je+Ie.width/2,je+=Ie.width)})})}return mt}function z(st,lt,Gt){var Nt=0;if(Gt===null){for(var Jt=[],sr=0;srlt.source.column)}function Z(st,lt){var Gt=0;st.sourceLinks.forEach(function(Jt){Gt=Jt.circular&&!pt(Jt,lt)?Gt+1:Gt});var Nt=0;return st.targetLinks.forEach(function(Jt){Nt=Jt.circular&&!pt(Jt,lt)?Nt+1:Nt}),Gt+Nt}function H(st){var lt=st.source.sourceLinks,Gt=0;lt.forEach(function(sr){Gt=sr.circular?Gt+1:Gt});var Nt=st.target.targetLinks,Jt=0;return Nt.forEach(function(sr){Jt=sr.circular?Jt+1:Jt}),!(Gt>1||Jt>1)}function N(st,lt,Gt){return st.sort(oe),st.forEach(function(Nt,Jt){var sr=0;if(pt(Nt,Gt)&&H(Nt))Nt.circularPathData.verticalBuffer=sr+Nt.width/2;else{var wr=0;for(wr;wrsr?cr:sr}Nt.circularPathData.verticalBuffer=sr+Nt.width/2}}),st}function j(st,lt,Gt,Nt){var Jt=5,sr=t.min(st.links,function($e){return $e.source.y0});st.links.forEach(function($e){$e.circular&&($e.circularPathData={})});var wr=st.links.filter(function($e){return $e.circularLinkType==\"top\"});N(wr,lt,Nt);var cr=st.links.filter(function($e){return $e.circularLinkType==\"bottom\"});N(cr,lt,Nt),st.links.forEach(function($e){if($e.circular){if($e.circularPathData.arcRadius=$e.width+g,$e.circularPathData.leftNodeBuffer=Jt,$e.circularPathData.rightNodeBuffer=Jt,$e.circularPathData.sourceWidth=$e.source.x1-$e.source.x0,$e.circularPathData.sourceX=$e.source.x0+$e.circularPathData.sourceWidth,$e.circularPathData.targetX=$e.target.x0,$e.circularPathData.sourceY=$e.y0,$e.circularPathData.targetY=$e.y1,pt($e,Nt)&&H($e))$e.circularPathData.leftSmallArcRadius=g+$e.width/2,$e.circularPathData.leftLargeArcRadius=g+$e.width/2,$e.circularPathData.rightSmallArcRadius=g+$e.width/2,$e.circularPathData.rightLargeArcRadius=g+$e.width/2,$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=$e.source.y1+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=$e.source.y0-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius);else{var St=$e.source.column,Qt=$e.circularLinkType,Vt=st.links.filter(function(mt){return mt.source.column==St&&mt.circularLinkType==Qt});$e.circularLinkType==\"bottom\"?Vt.sort(Ee):Vt.sort(_e);var _t=0;Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.leftSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.leftLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),St=$e.target.column,Vt=st.links.filter(function(mt){return mt.target.column==St&&mt.circularLinkType==Qt}),$e.circularLinkType==\"bottom\"?Vt.sort(me):Vt.sort(Ce),_t=0,Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.rightSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.rightLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=Math.max(Gt,$e.source.y1,$e.target.y1)+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=sr-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius)}$e.circularPathData.leftInnerExtent=$e.circularPathData.sourceX+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightInnerExtent=$e.circularPathData.targetX-$e.circularPathData.rightNodeBuffer,$e.circularPathData.leftFullExtent=$e.circularPathData.sourceX+$e.circularPathData.leftLargeArcRadius+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightFullExtent=$e.circularPathData.targetX-$e.circularPathData.rightLargeArcRadius-$e.circularPathData.rightNodeBuffer}if($e.circular)$e.path=re($e);else{var It=n.linkHorizontal().source(function(mt){var er=mt.source.x0+(mt.source.x1-mt.source.x0),lr=mt.y0;return[er,lr]}).target(function(mt){var er=mt.target.x0,lr=mt.y1;return[er,lr]});$e.path=It($e)}})}function re(st){var lt=\"\";return st.circularLinkType==\"top\"?lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 0 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY-st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 0 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 0 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY-st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 0 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY:lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 1 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY+st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 1 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 1 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY+st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 1 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY,lt}function oe(st,lt){return ie(st)==ie(lt)?st.circularLinkType==\"bottom\"?Ee(st,lt):_e(st,lt):ie(lt)-ie(st)}function _e(st,lt){return st.y0-lt.y0}function Ee(st,lt){return lt.y0-st.y0}function Ce(st,lt){return st.y1-lt.y1}function me(st,lt){return lt.y1-st.y1}function ie(st){return st.target.column-st.source.column}function Se(st){return st.target.x0-st.source.x1}function Le(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1+Nt:st.y1-Nt;return Jt}function Ae(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1-Nt:st.y1+Nt;return Jt}function Fe(st,lt,Gt,Nt){st.links.forEach(function(Jt){if(!Jt.circular&&Jt.target.column-Jt.source.column>1){var sr=Jt.source.column+1,wr=Jt.target.column-1,cr=1,$e=wr-sr+1;for(cr=1;sr<=wr;sr++,cr++)st.nodes.forEach(function(St){if(St.column==sr){var Qt=cr/($e+1),Vt=Math.pow(1-Qt,3),_t=3*Qt*Math.pow(1-Qt,2),It=3*Math.pow(Qt,2)*(1-Qt),mt=Math.pow(Qt,3),er=Vt*Jt.y0+_t*Jt.y0+It*Jt.y1+mt*Jt.y1,lr=er-Jt.width/2,Tr=er+Jt.width/2,Lr;lr>St.y0&&lrSt.y0&&TrSt.y1&&ge(ti,Lr,lt,Gt)})):lrSt.y1&&(Lr=Tr-St.y0+10,St=ge(St,Lr,lt,Gt),st.nodes.forEach(function(ti){C(ti,Nt)==C(St,Nt)||ti.column!=St.column||ti.y0St.y1&&ge(ti,Lr,lt,Gt)}))}})}})}function Pe(st,lt){return st.y0>lt.y0&&st.y0lt.y0&&st.y1lt.y1}function ge(st,lt,Gt,Nt){return st.y0+lt>=Gt&&st.y1+lt<=Nt&&(st.y0=st.y0+lt,st.y1=st.y1+lt,st.targetLinks.forEach(function(Jt){Jt.y1=Jt.y1+lt}),st.sourceLinks.forEach(function(Jt){Jt.y0=Jt.y0+lt})),st}function Re(st,lt,Gt,Nt){st.nodes.forEach(function(Jt){Nt&&Jt.y+(Jt.y1-Jt.y0)>lt&&(Jt.y=Jt.y-(Jt.y+(Jt.y1-Jt.y0)-lt));var sr=st.links.filter(function($e){return C($e.source,Gt)==C(Jt,Gt)}),wr=sr.length;wr>1&&sr.sort(function($e,St){if(!$e.circular&&!St.circular){if($e.target.column==St.target.column)return $e.y1-St.y1;if(Ze($e,St)){if($e.target.column>St.target.column){var Qt=Ae(St,$e);return $e.y1-Qt}if(St.target.column>$e.target.column){var Vt=Ae($e,St);return Vt-St.y1}}else return $e.y1-St.y1}if($e.circular&&!St.circular)return $e.circularLinkType==\"top\"?-1:1;if(St.circular&&!$e.circular)return St.circularLinkType==\"top\"?1:-1;if($e.circular&&St.circular)return $e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"top\"?$e.target.column===St.target.column?$e.target.y1-St.target.y1:St.target.column-$e.target.column:$e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"bottom\"?$e.target.column===St.target.column?St.target.y1-$e.target.y1:$e.target.column-St.target.column:$e.circularLinkType==\"top\"?-1:1});var cr=Jt.y0;sr.forEach(function($e){$e.y0=cr+$e.width/2,cr=cr+$e.width}),sr.forEach(function($e,St){if($e.circularLinkType==\"bottom\"){var Qt=St+1,Vt=0;for(Qt;Qt1&&Jt.sort(function(cr,$e){if(!cr.circular&&!$e.circular){if(cr.source.column==$e.source.column)return cr.y0-$e.y0;if(Ze(cr,$e)){if($e.source.column0?\"up\":\"down\"}function pt(st,lt){return C(st.source,lt)==C(st.target,lt)}function Zt(st,lt,Gt){var Nt=st.nodes,Jt=st.links,sr=!1,wr=!1;if(Jt.forEach(function(_t){_t.circularLinkType==\"top\"?sr=!0:_t.circularLinkType==\"bottom\"&&(wr=!0)}),sr==!1||wr==!1){var cr=t.min(Nt,function(_t){return _t.y0}),$e=t.max(Nt,function(_t){return _t.y1}),St=$e-cr,Qt=Gt-lt,Vt=Qt/St;Nt.forEach(function(_t){var It=(_t.y1-_t.y0)*Vt;_t.y0=(_t.y0-cr)*Vt,_t.y1=_t.y0+It}),Jt.forEach(function(_t){_t.y0=(_t.y0-cr)*Vt,_t.y1=(_t.y1-cr)*Vt,_t.width=_t.width*Vt})}}e.sankeyCircular=T,e.sankeyCenter=u,e.sankeyLeft=o,e.sankeyRight=s,e.sankeyJustify=l,Object.defineProperty(e,\"__esModule\",{value:!0})})});var jJ=ye((e2r,WWe)=>{\"use strict\";WWe.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 aXe=ye((t2r,nXe)=>{\"use strict\";var XWe=zWe(),zZt=(D2(),ob(R2)).interpolateNumber,I5=Oa(),Jk=UWe(),OZt=jWe(),Nu=jJ(),R5=cd(),ow=ka(),qZt=So(),p1=Dr(),ZJ=p1.strTranslate,BZt=p1.strRotate,YJ=Jm(),$k=YJ.keyFun,M7=YJ.repeat,QWe=YJ.unwrap,ZWe=ru(),NZt=qa(),eXe=$h(),UZt=eXe.CAP_SHIFT,VZt=eXe.LINE_SPACING,GZt=3;function HZt(e,t,r){var n=QWe(t),i=n.trace,a=i.domain,o=i.orientation===\"h\",s=i.node.pad,l=i.node.thickness,u={justify:Jk.sankeyJustify,left:Jk.sankeyLeft,right:Jk.sankeyRight,center:Jk.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,_;v?_=OZt.sankeyCircular().circularLinkGap(0):_=Jk.sankey(),_.iterations(Nu.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=_();_.nodePadding()=N||(H=N-Z.y0,H>1e-6&&(Z.y0+=H,Z.y1+=H)),N=Z.y1+s})}function P(V){var G=V.map(function(_e,Ee){return{x0:_e.x0,index:Ee}}).sort(function(_e,Ee){return _e.x0-Ee.x0}),Z=[],H=-1,N,j=-1/0,re;for(p=0;pj+l&&(H+=1,N=oe.x0),j=oe.x0,Z[H]||(Z[H]=[]),Z[H].push(oe),re=N-oe.x0,oe.x0+=re,oe.x1+=re}return Z}if(i.node.x.length&&i.node.y.length){for(p=0;p0?\" 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 KJ(){var e=.5;function t(r){var n=r.linkArrowLength;if(r.link.circular)return WZt(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=zZt(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,_=\"C\"+l+\",\"+c+\" \"+u+\",\"+h+\" \"+o+\",\"+h,b=\"C\"+u+\",\"+d+\" \"+l+\",\"+f+\" \"+a+\",\"+f,p=n>0?\"L\"+(o+n)+\",\"+(h+r.link.width/2):\"\";return p+=\"L\"+o+\",\"+d,v+_+p+b+\"Z\"}return t}function XZt(e,t){var r=R5(t.color),n=Nu.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:ow.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 XJ(e){e.attr(\"transform\",function(t){return ZJ(t.node.x0.toFixed(3),t.node.y0.toFixed(3))})}function ZZt(e){e.call(XJ)}function tXe(e,t){e.call(ZZt),t.attr(\"d\",KJ())}function YWe(e){e.attr(\"width\",function(t){return t.node.x1-t.node.x0}).attr(\"height\",function(t){return t.visibleHeight})}function WJ(e){return e.link.width>1||e.linkLineWidth>0}function KWe(e){var t=ZJ(e.translateX,e.translateY);return t+(e.horizontal?\"matrix(1 0 0 1 0 0)\":\"matrix(0 1 1 0 0 0)\")}function JWe(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 YZt(e,t,r,n){var i=I5.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,$We(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):KZt(e,o,a,n),JZt(e,t,a,o,n)}}).on(\"drag\",function(a){if(a.arrangement!==\"fixed\"){var o=I5.event.x,s=I5.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),$We(a.node),a.arrangement!==\"snap\"&&(a.sankey.update(a.graph),tXe(e.filter(iXe(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,rXe(r,i)}})}function $Zt(e,t,r,n){return function(){for(var a=0,o=0;o0&&n.forceLayouts[t].alpha(0)}}function rXe(e,t){for(var r=[],n=[],i=0;i{\"use strict\";var Zv=Oa(),$J=Dr(),E7=$J.numberFormat,rYt=aXe(),D5=vf(),iYt=ka(),Sx=jJ().cn,Qk=$J._;function oXe(e){return e!==\"\"}function F5(e,t){return e.filter(function(r){return r.key===t.traceId})}function sXe(e,t){Zv.select(e).select(\"path\").style(\"fill-opacity\",t),Zv.select(e).select(\"rect\").style(\"fill-opacity\",t)}function lXe(e){Zv.select(e).select(\"text.name\").style(\"fill\",\"black\")}function uXe(e){return function(t){return e.node.sourceLinks.indexOf(t.link)!==-1||e.node.targetLinks.indexOf(t.link)!==-1}}function cXe(e){return function(t){return t.node.sourceLinks.indexOf(e.link)!==-1||t.node.targetLinks.indexOf(e.link)!==-1}}function fXe(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(hXe.bind(0,t,r,!1))}function JJ(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(dXe.bind(0,t,r,!1))}function hXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(\".\"+Sx.sankeyNode).filter(cXe(e)).call(fXe)}function dXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(Sx.sankeyNode).filter(cXe(e)).call(JJ)}function kf(e,t){var r=e.hoverlabel||{},n=$J.nestedProperty(r,t).get();return Array.isArray(n)?!1:n}vXe.exports=function(t,r){for(var n=t._fullLayout,i=n._paper,a=n._size,o=0;o\"),color:kf(C,\"bgcolor\")||iYt.addOpacity(z.color,1),borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:Zv.event.x\"),color:kf(C,\"bgcolor\")||x.tinyColorHue,borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:\"left\",hovertemplate:C.hovertemplate,hovertemplateLabels:V,eventData:[x.node]},{container:n._hoverlayer.node(),outerContainer:n._paper.node(),gd:t});sXe(H,.85),lXe(H)}}},S=function(L,x,C){t._fullLayout.hovermode!==!1&&(Zv.select(L).call(JJ,x,C),x.node.trace.node.hoverinfo!==\"skip\"&&(x.node.fullData=x.node.trace,t.emit(\"plotly_unhover\",{event:Zv.event,points:[x.node]})),D5.loneUnhover(n._hoverlayer.node()))};rYt(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:_,unhover:b,select:l},nodeEvents:{hover:k,follow:E,unhover:S,select:p}})}});var pXe=ye(sw=>{\"use strict\";var nYt=mc().overrideAll,aYt=Id().getModuleCalcData,oYt=QJ(),sYt=B1(),lYt=Ag(),uYt=yv(),cYt=Of().prepSelect,e$=Dr(),fYt=qa(),k7=\"sankey\";sw.name=k7;sw.baseLayoutAttrOverrides=nYt({hoverlabel:sYt.hoverlabel},\"plot\",\"nested\");sw.plot=function(e){var t=aYt(e.calcdata,k7)[0];oYt(e,t),sw.updateFx(e)};sw.clean=function(e,t,r,n){var i=n._has&&n._has(k7),a=t._has&&t._has(k7);i&&!a&&(n._paperdiv.selectAll(\".sankey\").remove(),n._paperdiv.selectAll(\".bgsankey\").remove())};sw.updateFx=function(e){for(var t=0;t{\"use strict\";gXe.exports=function(t,r){for(var n=t.cd,i=[],a=n[0].trace,o=a._sankey.graph.nodes,s=0;s{\"use strict\";yXe.exports={attributes:VJ(),supplyDefaults:wWe(),calc:EWe(),plot:QJ(),moduleType:\"trace\",name:\"sankey\",basePlotModule:pXe(),selectPoints:mXe(),categories:[\"noOpacity\"],meta:{}}});var bXe=ye((o2r,xXe)=>{\"use strict\";xXe.exports=_Xe()});var TXe=ye(z5=>{\"use strict\";var wXe=Mc();z5.name=\"indicator\";z5.plot=function(e,t,r,n){wXe.plotBasePlot(z5.name,e,t,r,n)};z5.clean=function(e,t,r,n){wXe.cleanBasePlot(z5.name,e,t,r,n)}});var r$=ye((l2r,CXe)=>{\"use strict\";var Mx=Ao().extendFlat,SXe=Ao().extendDeep,dYt=mc().overrideAll,MXe=ec(),EXe=Lh(),vYt=Cc().attributes,Bf=Rd(),pYt=vl().templatedArray,C7=WT(),AXe=df().descriptionOnlyNumbers,t$=MXe({editType:\"plot\",colorEditType:\"plot\"}),eC={color:{valType:\"color\",editType:\"plot\"},line:{color:{valType:\"color\",dflt:EXe.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\"},kXe={valType:\"info_array\",items:[{valType:\"number\",editType:\"plot\"},{valType:\"number\",editType:\"plot\"}],editType:\"plot\"},gYt=pYt(\"step\",SXe({},eC,{range:kXe}));CXe.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:vYt({name:\"indicator\",trace:!0,editType:\"calc\"}),title:{text:{valType:\"string\",editType:\"plot\"},align:{valType:\"enumerated\",values:[\"left\",\"center\",\"right\"],editType:\"plot\"},font:Mx({},t$,{}),editType:\"plot\"},number:{valueformat:{valType:\"string\",dflt:\"\",editType:\"plot\",description:AXe(\"value\")},font:Mx({},t$,{}),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:AXe(\"value\")},increasing:{symbol:{valType:\"string\",dflt:C7.INCREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.INCREASING.COLOR,editType:\"plot\"},editType:\"plot\"},decreasing:{symbol:{valType:\"string\",dflt:C7.DECREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.DECREASING.COLOR,editType:\"plot\"},editType:\"plot\"},font:Mx({},t$,{}),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:SXe({},eC,{color:{dflt:\"green\"}}),bgcolor:{valType:\"color\",editType:\"plot\"},bordercolor:{valType:\"color\",dflt:EXe.defaultLine,editType:\"plot\"},borderwidth:{valType:\"number\",min:0,dflt:1,editType:\"plot\"},axis:dYt({range:kXe,visible:Mx({},Bf.visible,{dflt:!0}),tickmode:Bf.minor.tickmode,nticks:Bf.nticks,tick0:Bf.tick0,dtick:Bf.dtick,tickvals:Bf.tickvals,ticktext:Bf.ticktext,ticks:Mx({},Bf.ticks,{dflt:\"outside\"}),ticklen:Bf.ticklen,tickwidth:Bf.tickwidth,tickcolor:Bf.tickcolor,ticklabelstep:Bf.ticklabelstep,showticklabels:Bf.showticklabels,labelalias:Bf.labelalias,tickfont:MXe({}),tickangle:Bf.tickangle,tickformat:Bf.tickformat,tickformatstops:Bf.tickformatstops,tickprefix:Bf.tickprefix,showtickprefix:Bf.showtickprefix,ticksuffix:Bf.ticksuffix,showticksuffix:Bf.showticksuffix,separatethousands:Bf.separatethousands,exponentformat:Bf.exponentformat,minexponent:Bf.minexponent,showexponent:Bf.showexponent,editType:\"plot\"},\"plot\"),steps:gYt,threshold:{line:{color:Mx({},eC.line.color,{}),width:Mx({},eC.line.width,{dflt:1}),editType:\"plot\"},thickness:Mx({},eC.thickness,{dflt:.85}),value:{valType:\"number\",editType:\"calc\",dflt:!1},editType:\"plot\"},editType:\"plot\"}}});var i$=ye((u2r,LXe)=>{\"use strict\";LXe.exports={defaultNumberFontSize:80,bulletNumberDomainSize:.25,bulletPadding:.025,innerRadius:.75,valueThickness:.5,titlePadding:5,horizontalPadding:10}});var RXe=ye((c2r,IXe)=>{\"use strict\";var ty=Dr(),P7=r$(),mYt=Cc().defaults,PXe=vl(),yYt=Yd(),L7=i$(),_Yt=bb(),xYt=S3(),bYt=e_(),wYt=t_();function TYt(e,t,r,n){function i(x,C){return ty.coerce(e,t,P7,x,C)}mYt(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=ty.extendFlat({},n.font);l.size=void 0,ty.coerceFont(i,\"number.font\",l),t.number.font.size===void 0&&(t.number.font.size=L7.defaultNumberFontSize,o[0]=!0),i(\"number.prefix\"),i(\"number.suffix\"),s=t.number.font.size}var u;if(t._hasDelta){var c=ty.extendFlat({},n.font);c.size=void 0,ty.coerceFont(i,\"delta.font\",c),t.delta.font.size===void 0&&(t.delta.font.size=(t._hasNumber?.5:1)*(s||L7.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=ty.extendFlat({},n.font);f.size=.25*(s||u||L7.defaultNumberFontSize),ty.coerceFont(i,\"title.font\",f),i(\"title.text\");var h,d,v,_;function b(x,C){return ty.coerce(h,d,P7.gauge,x,C)}function p(x,C){return ty.coerce(v,_,P7.gauge.axis,x,C)}if(t._hasGauge){h=e.gauge,h||(h={}),d=PXe.newContainer(t,\"gauge\"),b(\"shape\");var k=t._isBullet=t.gauge.shape===\"bullet\";k||i(\"title.align\",\"center\");var E=t._isAngular=t.gauge.shape===\"angular\";E||i(\"align\",\"center\"),b(\"bgcolor\",n.paper_bgcolor),b(\"borderwidth\"),b(\"bordercolor\"),b(\"bar.color\"),b(\"bar.line.color\"),b(\"bar.line.width\");var S=L7.valueThickness*(t.gauge.shape===\"bullet\"?.5:1);b(\"bar.thickness\",S),yYt(h,d,{name:\"steps\",handleItemDefaults:AYt}),b(\"threshold.value\"),b(\"threshold.thickness\"),b(\"threshold.line.width\"),b(\"threshold.line.color\"),v={},h&&(v=h.axis||{}),_=PXe.newContainer(d,\"axis\"),p(\"visible\"),t._range=p(\"range\",t._range);var L={font:n.font,noAutotickangles:!0,outerTicks:!0,noTicklabelshift:!0,noTicklabelstandoff:!0};_Yt(v,_,p,\"linear\"),wYt(v,_,p,\"linear\",L),bYt(v,_,p,\"linear\",L),xYt(v,_,p,L)}else i(\"title.align\",\"center\"),i(\"align\",\"center\"),t._isAngular=t._isBullet=!1;t._length=null}function AYt(e,t){function r(n,i){return ty.coerce(e,t,P7.gauge.steps,n,i)}r(\"color\"),r(\"line.color\"),r(\"line.width\"),r(\"range\"),r(\"thickness\")}IXe.exports={supplyDefaults:TYt}});var FXe=ye((f2r,DXe)=>{\"use strict\";function SYt(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}DXe.exports={calc:SYt}});var UXe=ye((h2r,NXe)=>{\"use strict\";var hw=Oa(),MYt=(D2(),ob(R2)).interpolate,zXe=(D2(),ob(R2)).interpolateNumber,Ex=Dr(),EYt=Ex.strScale,rC=Ex.strTranslate,kYt=Ex.rad2deg,CYt=$h().MID_SHIFT,fw=So(),lw=i$(),R7=ru(),sv=ho(),LYt=r4(),PYt=lI(),IYt=Rd(),O5=ka(),n$={left:\"start\",center:\"middle\",right:\"end\"},uw={left:0,center:.5,right:1},OXe=/[yzafpnµmkMGTPEZY]/;function iC(e){return e&&e.duration>0}NXe.exports=function(t,r,n,i){var a=t._fullLayout,o;iC(n)&&i&&(o=i()),Ex.makeTraceGroups(a._indicatorlayer,r,\"trace\").each(function(s){var l=s[0],u=l.trace,c=hw.select(this),f=u._hasGauge,h=u._isAngular,d=u._isBullet,v=u.domain,_={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=_.l+_.w/2,p=_.t+_.h/2,k=Math.min(_.w/2,_.h),E=lw.innerRadius*k,S,L,x,C=u.align||\"center\";if(L=p,!f)S=_.l+uw[C]*_.w,x=function(H){return qXe(H,_.w,_.h)};else if(h&&(S=b,L=p+k/2,x=function(H){return OYt(H,.9*E)}),d){var M=lw.bulletPadding,g=1-lw.bulletNumberDomainSize+M;S=_.l+(g+(1-g)*uw[C])*_.w,x=function(H){return qXe(H,(lw.bulletNumberDomainSize-M)*_.w,_.h)}}FYt(t,c,s,{numbersX:S,numbersY:L,numbersScaler:x,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 z=c.selectAll(\"g.angular\").data(h?s:[]);z.exit().remove();var O=c.selectAll(\"g.angularaxis\").data(h?s:[]);O.exit().remove(),h&&DYt(t,c,s,{radius:k,innerRadius:E,gauge:z,layer:O,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var V=c.selectAll(\"g.bullet\").data(d?s:[]);V.exit().remove();var G=c.selectAll(\"g.bulletaxis\").data(d?s:[]);G.exit().remove(),d&&RYt(t,c,s,{gauge:V,layer:G,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var Z=c.selectAll(\"text.title\").data(s);Z.exit().remove(),Z.enter().append(\"text\").classed(\"title\",!0),Z.attr(\"text-anchor\",function(){return d?n$.right:n$[u.title.align]}).text(u.title.text).call(fw.font,u.title.font).call(R7.convertToTspans,t),Z.attr(\"transform\",function(){var H=_.l+_.w*uw[u.title.align],N,j=lw.titlePadding,re=fw.bBox(Z.node());if(f){if(h)if(u.gauge.axis.visible){var oe=fw.bBox(O.node());N=oe.top-j-re.bottom}else N=_.t+_.h/2-k/2-re.bottom-j;d&&(N=L-(re.top+re.bottom)/2,H=_.l-lw.bulletPadding*_.w)}else N=u._numbersTop-j-re.bottom;return rC(H,N)})})};function RYt(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,_,b,p;a.enter().append(\"g\").classed(\"bullet\",!0),a.attr(\"transform\",rC(u.l,u.t)),o.enter().append(\"g\").classed(\"bulletaxis\",!0).classed(\"crisp\",!0),o.selectAll(\"g.xbulletaxistick,path,text\").remove();var k=u.h,E=i.gauge.bar.thickness*k,S=c.x[0],L=c.x[0]+(c.x[1]-c.x[0])*(i._hasNumber||i._hasDelta?1-lw.bulletNumberDomainSize:1);d=tC(e,i.gauge.axis),d._id=\"xbulletaxis\",d.domain=[S,L],d.setScale(),v=sv.calcTicks(d),_=sv.makeTransTickFn(d),b=sv.getTickSigns(d)[2],p=u.t+u.h,d.visible&&(sv.drawTicks(e,d,{vals:d.ticks===\"inside\"?sv.clipEnds(d,v):v,layer:o,path:sv.makeTickPath(d,p,b),transFn:_}),sv.drawLabels(e,d,{vals:v,layer:o,transFn:_,labelFns:sv.makeLabelFns(d,p)}));function x(O){O.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)*k}).attr(\"height\",function(V){return V.thickness*k})}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(x).call(cw),M.exit().remove();var g=a.selectAll(\"g.value-bullet\").data([i.gauge.bar]);g.enter().append(\"g\").classed(\"value-bullet\",!0).append(\"rect\"),g.select(\"rect\").attr(\"height\",E).attr(\"y\",(k-E)/2).call(cw),iC(f)?g.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)))):g.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),g.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*k).attr(\"y2\",(1-(1-i.gauge.threshold.thickness)/2)*k).call(O5.stroke,i.gauge.threshold.line.color).style(\"stroke-width\",i.gauge.threshold.line.width),T.exit().remove();var z=a.selectAll(\"g.gauge-outline\").data([l]);z.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"rect\"),z.select(\"rect\").call(x).call(cw),z.exit().remove()}function DYt(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,_=Math.PI/2;function b(_e){var Ee=i.gauge.axis.range[0],Ce=i.gauge.axis.range[1],me=(_e-Ee)/(Ce-Ee)*Math.PI-_;return me<-_?-_:me>_?_:me}function p(_e){return hw.svg.arc().innerRadius((s+o)/2-_e/2*(o-s)).outerRadius((s+o)/2+_e/2*(o-s)).startAngle(-_)}function k(_e){_e.attr(\"d\",function(Ee){return p(Ee.thickness).startAngle(b(Ee.range[0])).endAngle(b(Ee.range[1]))()})}var E,S,L,x;f.enter().append(\"g\").classed(\"angular\",!0),f.attr(\"transform\",rC(c[0],c[1])),h.enter().append(\"g\").classed(\"angularaxis\",!0).classed(\"crisp\",!0),h.selectAll(\"g.xangularaxistick,path,text\").remove(),E=tC(e,i.gauge.axis),E.type=\"linear\",E.range=i.gauge.axis.range,E._id=\"xangularaxis\",E.ticklabeloverflow=\"allow\",E.setScale();var C=function(_e){return(E.range[0]-_e.x)/(E.range[1]-E.range[0])*Math.PI+Math.PI},M={},g=sv.makeLabelFns(E,0),P=g.labelStandoff;M.xFn=function(_e){var Ee=C(_e);return Math.cos(Ee)*P},M.yFn=function(_e){var Ee=C(_e),Ce=Math.sin(Ee)>0?.2:1;return-Math.sin(Ee)*(P+_e.fontSize*Ce)+Math.abs(Math.cos(Ee))*(_e.fontSize*CYt)},M.anchorFn=function(_e){var Ee=C(_e),Ce=Math.cos(Ee);return Math.abs(Ce)<.1?\"middle\":Ce>0?\"start\":\"end\"},M.heightFn=function(_e,Ee,Ce){var me=C(_e);return-.5*(1+Math.sin(me))*Ce};var T=function(_e){return rC(c[0]+o*Math.cos(_e),c[1]-o*Math.sin(_e))};L=function(_e){return T(C(_e))};var z=function(_e){var Ee=C(_e);return T(Ee)+\"rotate(\"+-kYt(Ee)+\")\"};if(S=sv.calcTicks(E),x=sv.getTickSigns(E)[2],E.visible){x=E.ticks===\"inside\"?-1:1;var O=(E.linewidth||1)/2;sv.drawTicks(e,E,{vals:S,layer:h,path:\"M\"+x*O+\",0h\"+x*E.ticklen,transFn:z}),sv.drawLabels(e,E,{vals:S,layer:h,transFn:L,labelFns:M})}var V=[l].concat(i.gauge.steps),G=f.selectAll(\"g.bg-arc\").data(V);G.enter().append(\"g\").classed(\"bg-arc\",!0).append(\"path\"),G.select(\"path\").call(k).call(cw),G.exit().remove();var Z=p(i.gauge.bar.thickness),H=f.selectAll(\"g.value-arc\").data([i.gauge.bar]);H.enter().append(\"g\").classed(\"value-arc\",!0).append(\"path\");var N=H.select(\"path\");iC(d)?(N.transition().duration(d.duration).ease(d.easing).each(\"end\",function(){v&&v()}).each(\"interrupt\",function(){v&&v()}).attrTween(\"d\",zYt(Z,b(r[0].lastY),b(r[0].y))),i._lastValue=r[0].y):N.attr(\"d\",typeof r[0].y==\"number\"?Z.endAngle(b(r[0].y)):\"M0,0Z\"),N.call(cw),H.exit().remove(),V=[];var j=i.gauge.threshold.value;(j||j===0)&&V.push({range:[j,j],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(k).call(cw),re.exit().remove();var oe=f.selectAll(\"g.gauge-outline\").data([u]);oe.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"path\"),oe.select(\"path\").call(k).call(cw),oe.exit().remove()}function FYt(e,t,r,n){var i=r[0].trace,a=n.numbersX,o=n.numbersY,s=i.align||\"center\",l=n$[s],u=n.transitionOpts,c=n.onComplete,f=Ex.ensureSingle(t,\"g\",\"numbers\"),h,d,v,_=[];i._hasNumber&&_.push(\"number\"),i._hasDelta&&(_.push(\"delta\"),i.delta.position===\"left\"&&_.reverse());var b=f.selectAll(\"text\").data(_);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 p(T,z,O,V){if(T.match(\"s\")&&O>=0!=V>=0&&!z(O).slice(-1).match(OXe)&&!z(V).slice(-1).match(OXe)){var G=T.slice().replace(\"s\",\"f\").replace(/\\d+/,function(H){return parseInt(H)-1}),Z=tC(e,{tickformat:G});return function(H){return Math.abs(H)<1?sv.tickText(Z,H).text:z(H)}}else return z}function k(){var T=tC(e,{tickformat:i.number.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(H){return sv.tickText(T,H).text},O=i.number.suffix,V=i.number.prefix,G=f.select(\"text.number\");function Z(){var H=typeof r[0].y==\"number\"?V+z(r[0].y)+O:\"-\";G.text(H).call(fw.font,i.number.font).call(R7.convertToTspans,e)}return iC(u)?G.transition().duration(u.duration).ease(u.easing).each(\"end\",function(){Z(),c&&c()}).each(\"interrupt\",function(){Z(),c&&c()}).attrTween(\"text\",function(){var H=hw.select(this),N=zXe(r[0].lastY,r[0].y);i._lastValue=r[0].y;var j=p(i.number.valueformat,z,r[0].lastY,r[0].y);return function(re){H.text(V+j(N(re))+O)}}):Z(),h=BXe(V+z(r[0].y)+O,i.number.font,l,e),G}function E(){var T=tC(e,{tickformat:i.delta.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(re){return sv.tickText(T,re).text},O=i.delta.suffix,V=i.delta.prefix,G=function(re){var oe=i.delta.relative?re.relativeDelta:re.delta;return oe},Z=function(re,oe){return re===0||typeof re!=\"number\"||isNaN(re)?\"-\":(re>0?i.delta.increasing.symbol:i.delta.decreasing.symbol)+V+oe(re)+O},H=function(re){return re.delta>=0?i.delta.increasing.color:i.delta.decreasing.color};i._deltaLastValue===void 0&&(i._deltaLastValue=G(r[0]));var N=f.select(\"text.delta\");N.call(fw.font,i.delta.font).call(O5.fill,H({delta:i._deltaLastValue}));function j(){N.text(Z(G(r[0]),z)).call(O5.fill,H(r[0])).call(R7.convertToTspans,e)}return iC(u)?N.transition().duration(u.duration).ease(u.easing).tween(\"text\",function(){var re=hw.select(this),oe=G(r[0]),_e=i._deltaLastValue,Ee=p(i.delta.valueformat,z,_e,oe),Ce=zXe(_e,oe);return i._deltaLastValue=oe,function(me){re.text(Z(Ce(me),Ee)),re.call(O5.fill,H({delta:Ce(me)}))}}).each(\"end\",function(){j(),c&&c()}).each(\"interrupt\",function(){j(),c&&c()}):j(),d=BXe(Z(G(r[0]),z),i.delta.font,l,e),N}var S=i.mode+i.align,L;if(i._hasDelta&&(L=E(),S+=i.delta.position+i.delta.font.size+i.delta.font.family+i.delta.valueformat,S+=i.delta.increasing.symbol+i.delta.decreasing.symbol,v=d),i._hasNumber&&(k(),S+=i.number.font.size+i.number.font.family+i.number.valueformat+i.number.suffix+i.number.prefix,v=h),i._hasDelta&&i._hasNumber){var x=[(h.left+h.right)/2,(h.top+h.bottom)/2],C=[(d.left+d.right)/2,(d.top+d.bottom)/2],M,g,P=.75*i.delta.font.size;i.delta.position===\"left\"&&(M=I7(i,\"deltaPos\",0,-1*(h.width*uw[i.align]+d.width*(1-uw[i.align])+P),S,Math.min),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"right\"&&(M=I7(i,\"deltaPos\",0,h.width*(1-uw[i.align])+d.width*uw[i.align]+P,S,Math.max),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"bottom\"&&(M=null,g=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,g=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:g})}(i._hasNumber||i._hasDelta)&&f.attr(\"transform\",function(){var T=n.numbersScaler(v);S+=T[2];var z=I7(i,\"numbersScale\",1,T[0],S,Math.min),O;i._scaleNumbers||(z=1),i._isAngular?O=o-z*v.bottom:O=o-z*(v.top+v.bottom)/2,i._numbersTop=z*v.top+O;var V=v[s];s===\"center\"&&(V=(v.left+v.right)/2);var G=a-z*V;return G=I7(i,\"numbersTranslate\",0,G,S,Math.max),rC(G,O)+EYt(z)})}function cw(e){e.each(function(t){O5.stroke(hw.select(this),t.line.color)}).each(function(t){O5.fill(hw.select(this),t.color)}).style(\"stroke-width\",function(t){return t.line.width})}function zYt(e,t,r){return function(){var n=MYt(t,r);return function(i){return e.endAngle(n(i))()}}}function tC(e,t,r){var n=e._fullLayout,i=Ex.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 Ex.coerce(i,a,IYt,l,u)}return LYt(i,a,s,o,n),PYt(i,a,s,o),a}function qXe(e,t,r){var n=Math.min(t/e.width,r/e.height);return[n,e,t+\"x\"+r]}function OYt(e,t){var r=Math.sqrt(e.width/2*(e.width/2)+e.height*e.height),n=t/r;return[n,e,t]}function BXe(e,t,r,n){var i=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\"),a=hw.select(i);return a.text(e).attr(\"x\",0).attr(\"y\",0).attr(\"text-anchor\",r).attr(\"data-unformatted\",e).call(R7.convertToTspans,n).call(fw.font,t),fw.bBox(a.node())}function I7(e,t,r,n,i,a){var o=\"_cache\"+t;e[o]&&e[o].key===i||(e[o]={key:i,value:r});var s=Ex.aggNums(a,null,[e[o].value,n],2);return e[o].value=s,s}});var GXe=ye((d2r,VXe)=>{\"use strict\";VXe.exports={moduleType:\"trace\",name:\"indicator\",basePlotModule:TXe(),categories:[\"svg\",\"noOpacity\",\"noHover\"],animatable:!0,attributes:r$(),supplyDefaults:RXe().supplyDefaults,calc:FXe().calc,plot:UXe(),meta:{}}});var jXe=ye((v2r,HXe)=>{\"use strict\";HXe.exports=GXe()});var a$=ye((g2r,YXe)=>{\"use strict\";var WXe=Ub(),D7=Ao().extendFlat,qYt=mc().overrideAll,XXe=ec(),BYt=Cc().attributes,ZXe=df().descriptionOnlyNumbers,p2r=YXe.exports=qYt({domain:BYt({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:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:28},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))},cells:{values:{valType:\"data_array\",dflt:[]},format:{valType:\"data_array\",dflt:[],description:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:20},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))}},\"calc\",\"from-root\")});var JXe=ye((m2r,KXe)=>{\"use strict\";var o$=Dr(),NYt=a$(),UYt=Cc().defaults;function VYt(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 GYt=Jm().wrap;$Xe.exports=function(){return GYt({})}});var s$=ye((_2r,eZe)=>{\"use strict\";eZe.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 uZe=ye((x2r,lZe)=>{\"use strict\";var tZe=s$(),u$=Ao().extendFlat,HYt=Eo(),jYt=vv().isTypedArray,F7=vv().isArrayOrTypedArray;lZe.exports=function(t,r){var n=l$(r.cells.values),i=function(g){return g.slice(r.header.values.length,g.length)},a=l$(r.header.values);a.length&&!a[0].length&&(a[0]=[\"\"],a=l$(a));var o=a.concat(i(n).map(function(){return sZe((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}):[tZe.emptyHeaderHeight],f=n.length?n[0].map(function(){return r.cells.height}):[],h=c.reduce(rZe,0),d=u-h,v=d+tZe.uplift,_=aZe(f,v),b=aZe(c,h),p=nZe(b,[]),k=nZe(_,p),E={},S=r._fullInput.columnorder;F7(S)&&(S=Array.from(S)),S=S.concat(i(n.map(function(g,P){return P})));var L=o.map(function(g,P){var T=F7(r.columnwidth)?r.columnwidth[Math.min(P,r.columnwidth.length-1)]:r.columnwidth;return HYt(T)?Number(T):1}),x=L.reduce(rZe,0);L=L.map(function(g){return g/x*l});var C=Math.max(c$(r.header.line.width),c$(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:S,groupHeight:u,rowBlocks:k,headerRowBlocks:p,scrollY:0,cells:u$({},r.cells,{values:n}),headerCells:u$({},r.header,{values:o}),gdColumns:o.map(function(g){return g[0]}),gdColumnsOriginalOrder:o.map(function(g){return g[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:o.map(function(g,P){var T=E[g];E[g]=(T||0)+1;var z=g+\"__\"+E[g];return{key:z,label:g,specIndex:P,xIndex:S[P],xScale:iZe,x:void 0,calcdata:void 0,columnWidth:L[P]}})};return M.columns.forEach(function(g){g.calcdata=M,g.x=iZe(g)}),M};function c$(e){if(F7(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=oZe(),i+=a,s=u+1,a=0);return r}function oZe(){return{firstRowIndex:null,lastRowIndex:null,rows:[]}}});var cZe=ye(f$=>{\"use strict\";var z7=Ao().extendFlat;f$.splitToPanels=function(e){var t=[0,0],r=z7({},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:z7({},e.calcdata,{cells:e.calcdata.headerCells})}),n=z7({},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=z7({},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]};f$.splitToCells=function(e){var t=WYt(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 WYt(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 b$=ye((w2r,bZe)=>{\"use strict\";var Ya=s$(),tf=Oa(),h$=Dr(),XYt=h$.numberFormat,Uu=Jm(),d$=So(),ZYt=ru(),YYt=Dr().raiseToTop,og=Dr().strTranslate,KYt=Dr().cancelTransition,JYt=uZe(),mZe=cZe(),fZe=ka();bZe.exports=function(t,r){var n=!t._context.staticPlot,i=t._fullLayout._paper.selectAll(\".\"+Ya.cn.table).data(r.map(function(k){var E=Uu.unwrap(k),S=E.trace;return JYt(t,S)}),Uu.keyFun);i.exit().remove(),i.enter().append(\"g\").classed(Ya.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(k){return k.width+k.size.l+k.size.r}).attr(\"height\",function(k){return k.height+k.size.t+k.size.b}).attr(\"transform\",function(k){return og(k.translateX,k.translateY)});var a=i.selectAll(\".\"+Ya.cn.tableControlView).data(Uu.repeat,Uu.keyFun),o=a.enter().append(\"g\").classed(Ya.cn.tableControlView,!0).style(\"box-sizing\",\"content-box\");if(n){var s=\"onwheel\"in document?\"wheel\":\"mousewheel\";o.on(\"mousemove\",function(k){a.filter(function(E){return k===E}).call(nC,t)}).on(s,function(k){if(!k.scrollbarState.wheeling){k.scrollbarState.wheeling=!0;var E=k.scrollY+tf.event.deltaY,S=q7(t,a,null,E)(k);S||(tf.event.stopPropagation(),tf.event.preventDefault()),k.scrollbarState.wheeling=!1}}).call(nC,t,!0)}a.attr(\"transform\",function(k){return og(k.size.l,k.size.t)});var l=a.selectAll(\".\"+Ya.cn.scrollBackground).data(Uu.repeat,Uu.keyFun);l.enter().append(\"rect\").classed(Ya.cn.scrollBackground,!0).attr(\"fill\",\"none\"),l.attr(\"width\",function(k){return k.width}).attr(\"height\",function(k){return k.height}),a.each(function(k){d$.setClipUrl(tf.select(this),hZe(t,k),t)});var u=a.selectAll(\".\"+Ya.cn.yColumn).data(function(k){return k.columns},Uu.keyFun);u.enter().append(\"g\").classed(Ya.cn.yColumn,!0),u.exit().remove(),u.attr(\"transform\",function(k){return og(k.x,0)}),n&&u.call(tf.behavior.drag().origin(function(k){var E=tf.select(this);return pZe(E,k,-Ya.uplift),YYt(this),k.calcdata.columnDragInProgress=!0,nC(a.filter(function(S){return k.calcdata.key===S.key}),t),k}).on(\"drag\",function(k){var E=tf.select(this),S=function(C){return(k===C?tf.event.x:C.x)+C.columnWidth/2};k.x=Math.max(-Ya.overdrag,Math.min(k.calcdata.width+Ya.overdrag-k.columnWidth,tf.event.x));var L=yZe(u).filter(function(C){return C.calcdata.key===k.calcdata.key}),x=L.sort(function(C,M){return S(C)-S(M)});x.forEach(function(C,M){C.xIndex=M,C.x=k===C?C.x:C.xScale(C)}),u.filter(function(C){return k!==C}).transition().ease(Ya.transitionEase).duration(Ya.transitionDuration).attr(\"transform\",function(C){return og(C.x,0)}),E.call(KYt).attr(\"transform\",og(k.x,-Ya.uplift))}).on(\"dragend\",function(k){var E=tf.select(this),S=k.calcdata;k.x=k.xScale(k),k.calcdata.columnDragInProgress=!1,pZe(E,k,0),sKt(t,S,S.columns.map(function(L){return L.xIndex}))})),u.each(function(k){d$.setClipUrl(tf.select(this),dZe(t,k),t)});var c=u.selectAll(\".\"+Ya.cn.columnBlock).data(mZe.splitToPanels,Uu.keyFun);c.enter().append(\"g\").classed(Ya.cn.columnBlock,!0).attr(\"id\",function(k){return k.key}),c.style(\"cursor\",function(k){return k.dragHandle?\"ew-resize\":k.calcdata.scrollbarState.barWiggleRoom?\"ns-resize\":\"default\"});var f=c.filter(lKt),h=c.filter(y$);n&&h.call(tf.behavior.drag().origin(function(k){return tf.event.stopPropagation(),k}).on(\"drag\",q7(t,a,-1)).on(\"dragend\",function(){})),v$(t,a,f,c),v$(t,a,h,c);var d=a.selectAll(\".\"+Ya.cn.scrollAreaClip).data(Uu.repeat,Uu.keyFun);d.enter().append(\"clipPath\").classed(Ya.cn.scrollAreaClip,!0).attr(\"id\",function(k){return hZe(t,k)});var v=d.selectAll(\".\"+Ya.cn.scrollAreaClipRect).data(Uu.repeat,Uu.keyFun);v.enter().append(\"rect\").classed(Ya.cn.scrollAreaClipRect,!0).attr(\"x\",-Ya.overdrag).attr(\"y\",-Ya.uplift).attr(\"fill\",\"none\"),v.attr(\"width\",function(k){return k.width+2*Ya.overdrag}).attr(\"height\",function(k){return k.height+Ya.uplift});var _=u.selectAll(\".\"+Ya.cn.columnBoundary).data(Uu.repeat,Uu.keyFun);_.enter().append(\"g\").classed(Ya.cn.columnBoundary,!0);var b=u.selectAll(\".\"+Ya.cn.columnBoundaryClippath).data(Uu.repeat,Uu.keyFun);b.enter().append(\"clipPath\").classed(Ya.cn.columnBoundaryClippath,!0),b.attr(\"id\",function(k){return dZe(t,k)});var p=b.selectAll(\".\"+Ya.cn.columnBoundaryRect).data(Uu.repeat,Uu.keyFun);p.enter().append(\"rect\").classed(Ya.cn.columnBoundaryRect,!0).attr(\"fill\",\"none\"),p.attr(\"width\",function(k){return k.columnWidth+2*O7(k)}).attr(\"height\",function(k){return k.calcdata.height+2*O7(k)+Ya.uplift}).attr(\"x\",function(k){return-O7(k)}).attr(\"y\",function(k){return-O7(k)}),_$(null,h,a)};function O7(e){return Math.ceil(e.calcdata.maxLineWidth/2)}function hZe(e,t){return\"clip\"+e._fullLayout._uid+\"_scrollAreaBottomClip_\"+t.key}function dZe(e,t){return\"clip\"+e._fullLayout._uid+\"_columnBoundaryClippath_\"+t.calcdata.key+\"_\"+t.specIndex}function yZe(e){return[].concat.apply([],e.map(function(t){return t})).map(function(t){return t.__data__})}function nC(e,t,r){function n(u){var c=u.rowBlocks;return g$(c,c.length-1)+(c.length?B7(c[c.length-1],1/0):1)}var i=e.selectAll(\".\"+Ya.cn.scrollbarKit).data(Uu.repeat,Uu.keyFun);i.enter().append(\"g\").classed(Ya.cn.scrollbarKit,!0).style(\"shape-rendering\",\"geometricPrecision\"),i.each(function(u){var c=u.scrollbarState;c.totalHeight=n(u),c.scrollableAreaHeight=u.groupHeight-p$(u),c.currentlyVisibleHeight=Math.min(c.totalHeight,c.scrollableAreaHeight),c.ratio=c.currentlyVisibleHeight/c.totalHeight,c.barLength=Math.max(c.ratio*c.currentlyVisibleHeight,Ya.goldenRatio*Ya.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+Ya.scrollbarWidth/2+Ya.scrollbarOffset;return og(c,p$(u))});var a=i.selectAll(\".\"+Ya.cn.scrollbar).data(Uu.repeat,Uu.keyFun);a.enter().append(\"g\").classed(Ya.cn.scrollbar,!0);var o=a.selectAll(\".\"+Ya.cn.scrollbarSlider).data(Uu.repeat,Uu.keyFun);o.enter().append(\"g\").classed(Ya.cn.scrollbarSlider,!0),o.attr(\"transform\",function(u){return og(0,u.scrollbarState.topY||0)});var s=o.selectAll(\".\"+Ya.cn.scrollbarGlyph).data(Uu.repeat,Uu.keyFun);s.enter().append(\"line\").classed(Ya.cn.scrollbarGlyph,!0).attr(\"stroke\",\"black\").attr(\"stroke-width\",Ya.scrollbarWidth).attr(\"stroke-linecap\",\"round\").attr(\"y1\",Ya.scrollbarWidth/2),s.attr(\"y2\",function(u){return u.scrollbarState.barLength-Ya.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(Ya.scrollbarHideDelay).duration(Ya.scrollbarHideDuration).attr(\"stroke-opacity\",0);var l=a.selectAll(\".\"+Ya.cn.scrollbarCaptureZone).data(Uu.repeat,Uu.keyFun);l.enter().append(\"line\").classed(Ya.cn.scrollbarCaptureZone,!0).attr(\"stroke\",\"white\").attr(\"stroke-opacity\",.01).attr(\"stroke-width\",Ya.scrollbarCaptureWidth).attr(\"stroke-linecap\",\"butt\").attr(\"y1\",0).on(\"mousedown\",function(u){var c=tf.event.y,f=this.getBoundingClientRect(),h=u.scrollbarState,d=c-f.top,v=tf.scale.linear().domain([0,h.scrollableAreaHeight]).range([0,h.totalHeight]).clamp(!0);h.topY<=d&&d<=h.bottomY||q7(t,e,null,v(d-h.barLength/2))(u)}).call(tf.behavior.drag().origin(function(u){return tf.event.stopPropagation(),u.scrollbarState.scrollbarScrollInProgress=!0,u}).on(\"drag\",q7(t,e)).on(\"dragend\",function(){})),l.attr(\"y2\",function(u){return u.scrollbarState.scrollableAreaHeight}),t._context.staticPlot&&(s.remove(),l.remove())}function v$(e,t,r,n){var i=$Yt(r),a=QYt(i);iKt(a);var o=eKt(a);aKt(o);var s=rKt(a),l=tKt(s);nKt(l),_Ze(l,t,n,e),x$(a)}function $Yt(e){var t=e.selectAll(\".\"+Ya.cn.columnCells).data(Uu.repeat,Uu.keyFun);return t.enter().append(\"g\").classed(Ya.cn.columnCells,!0),t.exit().remove(),t}function QYt(e){var t=e.selectAll(\".\"+Ya.cn.columnCell).data(mZe.splitToCells,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.columnCell,!0),t.exit().remove(),t}function eKt(e){var t=e.selectAll(\".\"+Ya.cn.cellRect).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"rect\").classed(Ya.cn.cellRect,!0),t}function tKt(e){var t=e.selectAll(\".\"+Ya.cn.cellText).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"text\").classed(Ya.cn.cellText,!0).style(\"cursor\",function(){return\"auto\"}).on(\"mousedown\",function(){tf.event.stopPropagation()}),t}function rKt(e){var t=e.selectAll(\".\"+Ya.cn.cellTextHolder).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.cellTextHolder,!0).style(\"shape-rendering\",\"geometricPrecision\"),t}function iKt(e){e.each(function(t,r){var n=t.calcdata.cells.font,i=t.column.specIndex,a={size:Yv(n.size,i,r),color:Yv(n.color,i,r),family:Yv(n.family,i,r),weight:Yv(n.weight,i,r),style:Yv(n.style,i,r),variant:Yv(n.variant,i,r),textcase:Yv(n.textcase,i,r),lineposition:Yv(n.lineposition,i,r),shadow:Yv(n.shadow,i,r)};t.rowNumber=t.key,t.align=Yv(t.calcdata.cells.align,i,r),t.cellBorderWidth=Yv(t.calcdata.cells.line.width,i,r),t.font=a})}function nKt(e){e.each(function(t){d$.font(tf.select(this),t.font)})}function aKt(e){e.attr(\"width\",function(t){return t.column.columnWidth}).attr(\"stroke-width\",function(t){return t.cellBorderWidth}).each(function(t){var r=tf.select(this);fZe.stroke(r,Yv(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),fZe.fill(r,Yv(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}function _Ze(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=oKt(s);i.latex=f;var h=f?\"\":Yv(i.calcdata.cells.prefix,a,o)||\"\",d=f?\"\":Yv(i.calcdata.cells.suffix,a,o)||\"\",v=f?null:Yv(i.calcdata.cells.format,a,o)||null,_=h+(v?XYt(v)(i.value):i.value)+d,b;i.wrappingNeeded=!i.wrapped&&!c&&!f&&(b=vZe(_)),i.cellHeightMayIncrease=u||f||i.mayHaveMarkup||(b===void 0?vZe(_):b),i.needsConvertToTspans=i.mayHaveMarkup||i.wrappingNeeded||i.latex;var p;if(i.wrappingNeeded){var k=Ya.wrapSplitCharacter===\" \"?_.replace(/i&&n.push(a),i+=l}return n}function _$(e,t,r){var n=yZe(t)[0];if(n!==void 0){var i=n.rowBlocks,a=n.calcdata,o=g$(i,i.length),s=n.calcdata.groupHeight-p$(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),u=uKt(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=g$(c.rowBlocks,c.page)-c.scrollY;return og(0,f)}),e&&(gZe(e,r,t,u,n.prevPages,n,0),gZe(e,r,t,u,n.prevPages,n,1),nC(r,e))}}function q7(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*tf.event.dy:n;var c=s.selectAll(\".\"+Ya.cn.yColumn).selectAll(\".\"+Ya.cn.columnBlock).filter(y$);return _$(e,c,s),o.scrollY===u}}function gZe(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]});v$(e,t,l,r),i[o]=n[o]}))}function cKt(e,t,r,n){return function(){var a=tf.select(t.parentNode);a.each(function(o){var s=o.fragments;a.selectAll(\"tspan.line\").each(function(_,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*Ya.cellPad;for(o.value=\"\";u.length;)f=u.shift(),h=f.width+l,d+h>v&&(o.value+=c.join(Ya.wrapSpacer)+Ya.lineBreaker,c=[],d=0),c.push(f.text),d+=h;d&&(o.value+=c.join(Ya.wrapSpacer)),o.wrapped=!0}),a.selectAll(\"tspan.line\").remove(),_Ze(a.select(\".\"+Ya.cn.cellText),r,e,n),tf.select(t.parentNode.parentNode).call(x$)}}function fKt(e,t,r,n,i){return function(){if(!i.settledY){var o=tf.select(t.parentNode),s=m$(i),l=i.key-s.firstRowIndex,u=s.rows[l].rowHeight,c=i.cellHeightMayIncrease?t.parentNode.getBoundingClientRect().height+2*Ya.cellPad:u,f=Math.max(c,u),h=f-s.rows[l].rowHeight;h&&(s.rows[l].rowHeight=f,e.selectAll(\".\"+Ya.cn.columnCell).call(x$),_$(null,e.filter(y$),0),nC(r,n,!0)),o.attr(\"transform\",function(){var d=this,v=d.parentNode,_=v.getBoundingClientRect(),b=tf.select(d.parentNode).select(\".\"+Ya.cn.cellRect).node().getBoundingClientRect(),p=d.transform.baseVal.consolidate(),k=b.top-_.top+(p?p.matrix.f:Ya.cellPad);return og(xZe(i,tf.select(d.parentNode).select(\".\"+Ya.cn.cellTextHolder).node().getBoundingClientRect().width),k)}),i.settledY=!0}}}function xZe(e,t){switch(e.align){case\"left\":return Ya.cellPad;case\"right\":return e.column.columnWidth-(t||0)-Ya.cellPad;case\"center\":return(e.column.columnWidth-(t||0))/2;default:return Ya.cellPad}}function x$(e){e.attr(\"transform\",function(t){var r=t.rowBlocks[0].auxiliaryBlocks.reduce(function(o,s){return o+B7(s,1/0)},0),n=m$(t),i=B7(n,t.key),a=i+r;return og(0,a)}).selectAll(\".\"+Ya.cn.cellRect).attr(\"height\",function(t){return dKt(m$(t),t.key).rowHeight})}function g$(e,t){for(var r=0,n=t-1;n>=0;n--)r+=hKt(e[n]);return r}function B7(e,t){for(var r=0,n=0;n{\"use strict\";var vKt=Id().getModuleCalcData,pKt=b$(),N7=\"table\";U7.name=N7;U7.plot=function(e){var t=vKt(e.calcdata,N7)[0];t.length&&pKt(e,t)};U7.clean=function(e,t,r,n){var i=n._has&&n._has(N7),a=t._has&&t._has(N7);i&&!a&&n._paperdiv.selectAll(\".table\").remove()}});var AZe=ye((A2r,TZe)=>{\"use strict\";TZe.exports={attributes:a$(),supplyDefaults:JXe(),calc:QXe(),plot:b$(),moduleType:\"trace\",name:\"table\",basePlotModule:wZe(),categories:[\"noOpacity\"],meta:{}}});var MZe=ye((S2r,SZe)=>{\"use strict\";SZe.exports=AZe()});var PZe=ye((M2r,LZe)=>{\"use strict\";var EZe=ec(),kZe=Lh(),w$=Rd(),gKt=df().descriptionWithDates,mKt=mc().overrideAll,CZe=Pd().dash,T$=Ao().extendFlat;LZe.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:EZe({editType:\"calc\"}),offset:{valType:\"number\",dflt:10,editType:\"calc\"},editType:\"calc\"},type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"date\",\"category\"],dflt:\"-\",editType:\"calc\"},autotypenumbers:w$.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:T$({},w$.labelalias,{editType:\"calc\"}),tickfont:EZe({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\",\"SI extended\"],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:gKt(\"tick label\")},tickformatstops:mKt(w$.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:kZe.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:T$({},CZe,{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:T$({},CZe,{editType:\"calc\"}),minorgridcolor:{valType:\"color\",dflt:kZe.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 G7=ye((E2r,DZe)=>{\"use strict\";var yKt=ec(),IZe=PZe(),RZe=Lh(),V7=yKt({editType:\"calc\"}),_Kt=pf().zorder;V7.family.dflt='\"Open Sans\", verdana, arial, sans-serif';V7.size.dflt=12;V7.color.dflt=RZe.defaultLine;DZe.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:IZe,baxis:IZe,font:V7,color:{valType:\"color\",dflt:RZe.defaultLine,editType:\"plot\"},zorder:_Kt}});var OZe=ye((k2r,zZe)=>{\"use strict\";var FZe=Dr().isArray1D;zZe.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||FZe(i))&&(!s||FZe(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 NZe=ye((C2r,BZe)=>{\"use strict\";var xKt=G7(),qZe=ka().addOpacity,bKt=qa(),aC=Dr(),wKt=bb(),TKt=e_(),AKt=t_(),SKt=aI(),MKt=ym(),EKt=I3();BZe.exports=function(t,r,n){var i=n.letter,a=n.font||{},o=xKt[i+\"axis\"];function s(g,P){return aC.coerce(t,r,o,g,P)}function l(g,P){return aC.coerce2(t,r,o,g,P)}n.name&&(r._name=n.name,r._id=n.name),s(\"autotypenumbers\",n.autotypenumbersDflt);var u=s(\"type\");if(u===\"-\"&&(n.data&&kKt(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=bKt.getComponentMethod(\"calendars\",\"handleDefaults\");c(t,r,\"calendar\",n.calendar)}MKt(r,n.fullLayout),r.c2p=aC.identity;var f=s(\"color\",n.dfltColor),h=f===t.color?f:a.color,d=s(\"title.text\");d&&(aC.coerceFont(s,\"title.font\",a,{overrideDflt:{size:aC.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\"),wKt(t,r,s,u),AKt(t,r,s,u,n),TKt(t,r,s,u,n),SKt(t,r,s,{data:n.data,dataAttr:i});var _=l(\"gridcolor\",qZe(f,.3)),b=l(\"gridwidth\"),p=l(\"griddash\"),k=s(\"showgrid\");k||(delete r.gridcolor,delete r.gridwidth,delete r.griddash);var E=l(\"startlinecolor\",f),S=l(\"startlinewidth\",b),L=s(\"startline\",r.showgrid||!!E||!!S);L||(delete r.startlinecolor,delete r.startlinewidth);var x=l(\"endlinecolor\",f),C=l(\"endlinewidth\",b),M=s(\"endline\",r.showgrid||!!x||!!C);return M||(delete r.endlinecolor,delete r.endlinewidth),k?(s(\"minorgridcount\"),s(\"minorgridwidth\",b),s(\"minorgriddash\",p),s(\"minorgridcolor\",qZe(_,.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 kKt(e,t){if(e.type===\"-\"){var r=e._id,n=r.charAt(0),i=n+\"calendar\",a=e[i];e.type=EKt(t,a,{autotypenumbers:e.autotypenumbers})}}});var VZe=ye((L2r,UZe)=>{\"use strict\";var CKt=NZe(),LKt=vl();UZe.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\")),PKt(t,r,n,a)};function PKt(e,t,r,n){var i=[\"aaxis\",\"baxis\"];i.forEach(function(a){var o=a.charAt(0),s=e[a]||{},l=LKt.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};CKt(s,l,u),l._categories=l._categories||[],!e[a]&&s.type!==\"-\"&&(e[a]={type:s.type})})}});var jZe=ye((P2r,HZe)=>{\"use strict\";var GZe=Dr(),IKt=OZe(),RKt=VZe(),DKt=G7(),FKt=Lh();HZe.exports=function(t,r,n,i){function a(l,u){return GZe.coerce(t,r,DKt,l,u)}r._clipPathId=\"clip\"+r.uid+\"carpet\";var o=a(\"color\",FKt.defaultLine);if(GZe.coerceFont(a,\"font\",i.font),a(\"carpet\"),RKt(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=IKt(t,r,a);s||(r.visible=!1),r._cheater&&a(\"cheaterslope\"),a(\"zorder\")}});var A$=ye((I2r,WZe)=>{\"use strict\";var zKt=Dr().isArrayOrTypedArray;WZe.exports=function(t,r,n){var i;for(zKt(t)?t.length>r.length&&(t=t.slice(0,r.length)):t=[],i=0;i{\"use strict\";XZe.exports=function(t,r,n){if(t.length===0)return\"\";var i,a=[],o=n?3:1;for(i=0;i{\"use strict\";ZZe.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 iYe=ye((F2r,rYe)=>{\"use strict\";var X7=Oa(),H7=So(),j7=A$(),$Ze=S$(),oC=YZe(),M$=ru(),Up=Dr(),QZe=Up.strRotate,W7=Up.strTranslate,eYe=$h();rYe.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=X7.select(this),h=c[0],d=h.trace,v=d.aaxis,_=d.baxis,b=Up.ensureSingle(f,\"g\",\"minorlayer\"),p=Up.ensureSingle(f,\"g\",\"majorlayer\"),k=Up.ensureSingle(f,\"g\",\"boundarylayer\"),E=Up.ensureSingle(f,\"g\",\"labellayer\");f.style(\"opacity\",d.opacity),q5(o,s,p,v,\"a\",v._gridlines,!0,a),q5(o,s,p,_,\"b\",_._gridlines,!0,a),q5(o,s,b,v,\"a\",v._minorgridlines,!0,a),q5(o,s,b,_,\"b\",_._minorgridlines,!0,a),q5(o,s,k,v,\"a-boundary\",v._boundarylines,a),q5(o,s,k,_,\"b-boundary\",_._boundarylines,a);var S=KZe(t,o,s,d,h,E,v._labels,\"a-label\"),L=KZe(t,o,s,d,h,E,_._labels,\"b-label\");qKt(t,E,d,h,o,s,S,L),OKt(d,h,u,o,s)})};function OKt(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(H7.font,f.font).text(f.text).call(M$.convertToTspans,e),p=H7.bBox(this);b.attr(\"transform\",W7(d.p[0],d.p[1])+QZe(d.angle)+W7(f.axis.labelpadding*_,p.height*.3)),u=Math.max(u,p.width+f.axis.labelpadding)}),l.exit().remove(),c.maxExtent=u,c}function qKt(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),_=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,oC(r,i,a,c,r.dxydb_rough(l,u))),JZe(e,t,r,n,c,f,r.aaxis,i,a,o,\"a-title\"),l=h,u=.5*(v+_),c=r.ab2xy(l,u,!0),f=r.dxydb_rough(l,u),s.angle===void 0&&Up.extendFlat(s,oC(r,i,a,c,r.dxyda_rough(l,u))),JZe(e,t,r,n,c,f,r.baxis,i,a,s,\"b-title\")}var tYe=eYe.LINE_SPACING,BKt=(1-eYe.MID_SHIFT)/tYe+1;function JZe(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=oC(r,s,l,i,a);[\"start\",\"both\"].indexOf(o.showticklabels)===-1&&(d=0);var _=o.title.font.size;d+=_+o.title.offset;var b=u.angle+(u.flip<0?180:0),p=(b-v.angle+450)%360,k=p>90&&p<270,E=X7.select(this);E.text(o.title.text).call(M$.convertToTspans,e),k&&(d=(-M$.lineCount(E)+BKt)*tYe*_-d),E.attr(\"transform\",W7(v.p[0],v.p[1])+QZe(v.angle)+W7(0,d)).attr(\"text-anchor\",\"middle\").call(H7.font,o.title.font)}),h.exit().remove()}});var aYe=ye((z2r,nYe)=>{\"use strict\";var Z7=Dr().isArrayOrTypedArray;nYe.exports=function(e,t,r){var n,i,a,o,s,l,u=[],c=Z7(e)?e.length:e,f=Z7(t)?t.length:t,h=Z7(e)?e:null,d=Z7(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,_=1/0,b=-1/0;for(i=0;i{\"use strict\";var oYe=Dr().isArrayOrTypedArray;lYe.exports=function(e){return sYe(e,0)};function sYe(e,t){if(!oYe(e)||t>=10)return null;for(var r=1/0,n=-1/0,i=e.length,a=0;a{\"use strict\";var NKt=ho(),kx=Ao().extendFlat;cYe.exports=function(t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p,k=t[\"_\"+r],E=t[r+\"axis\"],S=E._gridlines=[],L=E._minorgridlines=[],x=E._boundarylines=[],C=t[\"_\"+n],M=t[n+\"axis\"];E.tickmode===\"array\"&&(E.tickvals=k.slice());var g=t._xctrl,P=t._yctrl,T=g[0].length,z=g.length,O=t._a.length,V=t._b.length;NKt.prepTicks(E),E.tickmode===\"array\"&&delete E.tickvals;var G=E.smoothing?3:1;function Z(N){var j,re,oe,_e,Ee,Ce,me,ie,Se,Le,Ae,Fe,Pe=[],ge=[],Re={};if(r===\"b\")for(re=t.b2j(N),oe=Math.floor(Math.max(0,Math.min(V-2,re))),_e=re-oe,Re.length=V,Re.crossLength=O,Re.xy=function(ce){return t.evalxy([],ce,re)},Re.dxy=function(ce,Ze){return t.dxydi([],ce,oe,Ze,_e)},j=0;j0&&(Se=t.dxydi([],j-1,oe,0,_e),Pe.push(Ee[0]+Se[0]/3),ge.push(Ee[1]+Se[1]/3),Le=t.dxydi([],j-1,oe,1,_e),Pe.push(ie[0]-Le[0]/3),ge.push(ie[1]-Le[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;else for(j=t.a2i(N),Ce=Math.floor(Math.max(0,Math.min(O-2,j))),me=j-Ce,Re.length=O,Re.crossLength=V,Re.xy=function(ce){return t.evalxy([],j,ce)},Re.dxy=function(ce,Ze){return t.dxydj([],Ce,ce,me,Ze)},re=0;re0&&(Ae=t.dxydj([],Ce,re-1,me,0),Pe.push(Ee[0]+Ae[0]/3),ge.push(Ee[1]+Ae[1]/3),Fe=t.dxydj([],Ce,re-1,me,1),Pe.push(ie[0]-Fe[0]/3),ge.push(ie[1]-Fe[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;return Re.axisLetter=r,Re.axis=E,Re.crossAxis=M,Re.value=N,Re.constvar=n,Re.index=f,Re.x=Pe,Re.y=ge,Re.smoothing=M.smoothing,Re}function H(N){var j,re,oe,_e,Ee,Ce=[],me=[],ie={};if(ie.length=k.length,ie.crossLength=C.length,r===\"b\")for(oe=Math.max(0,Math.min(V-2,N)),Ee=Math.min(1,Math.max(0,N-oe)),ie.xy=function(Se){return t.evalxy([],Se,N)},ie.dxy=function(Se,Le){return t.dxydi([],Se,oe,Le,Ee)},j=0;jk.length-1)&&S.push(kx(H(a),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u;fk.length-1)&&!(v<0||v>k.length-1))for(_=k[o],b=k[v],i=0;ik[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash})));E.startline&&x.push(kx(H(0),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(H(k.length-1),{color:E.endlinecolor,width:E.endlinewidth}))}else{for(s=5e-15,l=[Math.floor((k[k.length-1]-E.tick0)/E.dtick*(1+s)),Math.ceil((k[0]-E.tick0)/E.dtick/(1+s))].sort(function(N,j){return N-j}),u=l[0],c=l[1],f=u;f<=c;f++)h=E.tick0+E.dtick*f,S.push(kx(Z(h),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u-1;fk[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash}));E.startline&&x.push(kx(Z(k[0]),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(Z(k[k.length-1]),{color:E.endlinecolor,width:E.endlinewidth}))}}});var pYe=ye((B2r,vYe)=>{\"use strict\";var hYe=ho(),dYe=Ao().extendFlat;vYe.exports=function(t,r){var n,i,a,o,s,l=r._labels=[],u=r._gridlines;for(n=0;n{\"use strict\";gYe.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 _Ye=ye((U2r,yYe)=>{\"use strict\";var UKt=Dr();yYe.exports=function(t,r,n){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(oe,_e){var Ee=0,Ce,me=0;return oe>0&&(Ce=t[_e][oe-1])!==void 0&&(me++,Ee+=Ce),oe0&&(Ce=t[_e-1][oe])!==void 0&&(me++,Ee+=Ce),_e0&&a0&&iM);return UKt.log(\"Smoother converged to\",g,\"after\",T,\"iterations\"),t}});var bYe=ye((V2r,xYe)=>{\"use strict\";xYe.exports={RELATIVE_CULL_TOLERANCE:1e-6}});var AYe=ye((G2r,TYe)=>{\"use strict\";var wYe=.5;TYe.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,wYe/2),c=Math.pow(s*s+l*l,wYe/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 MYe=ye((H2r,SYe)=>{\"use strict\";var E$=AYe(),Y7=Dr().ensureArray;function B5(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]}SYe.exports=function(t,r,n,i,a,o){var s,l,u,c,f,h,d,v,_,b,p=n[0].length,k=n.length,E=a?3*p-2:p,S=o?3*k-2:k;for(t=Y7(t,S),r=Y7(r,S),u=0;u{\"use strict\";EYe.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,_,b=Math.max(0,Math.min(Math.floor(l),a)),p=Math.max(0,Math.min(Math.floor(u),o)),k=Math.max(0,Math.min(1,l-b)),E=Math.max(0,Math.min(1,u-p));b*=3,p*=3;var S=k*k,L=S*k,x=1-k,C=x*x,M=C*x,g=E*E,P=g*E,T=1-E,z=T*T,O=z*T;for(_=0;_{\"use strict\";CYe.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,_=1-o,b=_*_,p=_*o*2,k=-3*b,E=3*(b-p),S=3*(p-v),L=3*v,x=s*s,C=x*s,M=1-s,g=M*M,P=g*M;for(d=0;d{\"use strict\";PYe.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,_=v*o,b=1-o,p=b*b,k=p*b,E=s*s,S=1-s,L=S*S,x=S*s*2,C=-3*L,M=3*(L-x),g=3*(x-E),P=3*E;for(d=0;d{\"use strict\";var RYe=bYe(),DYe=R6().findBin,VKt=MYe(),GKt=kYe(),HKt=LYe(),jKt=IYe();FYe.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*RYe.RELATIVE_CULL_TOLERANCE,_=d*RYe.RELATIVE_CULL_TOLERANCE;l-=v,u+=v,c-=_,f+=_,t.isVisible=function(b,p){return b>l&&bc&&pu||pf},t.setScale=function(){var b=t._x,p=t._y,k=VKt(t._xctrl,t._yctrl,b,p,o.smoothing,s.smoothing);t._xctrl=k[0],t._yctrl=k[1],t.evalxy=GKt([t._xctrl,t._yctrl],i,a,o.smoothing,s.smoothing),t.dxydi=HKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing),t.dxydj=jKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing)},t.i2a=function(b){var p=Math.max(0,Math.floor(b[0]),i-2),k=b[0]-p;return(1-k)*r[p]+k*r[p+1]},t.j2b=function(b){var p=Math.max(0,Math.floor(b[1]),i-2),k=b[1]-p;return(1-k)*n[p]+k*n[p+1]},t.ij2ab=function(b){return[t.i2a(b[0]),t.j2b(b[1])]},t.a2i=function(b){var p=Math.max(0,Math.min(DYe(b,r),i-2)),k=r[p],E=r[p+1];return Math.max(0,Math.min(i-1,p+(b-k)/(E-k)))},t.b2j=function(b){var p=Math.max(0,Math.min(DYe(b,n),a-2)),k=n[p],E=n[p+1];return Math.max(0,Math.min(a-1,p+(b-k)/(E-k)))},t.ab2ij=function(b){return[t.a2i(b[0]),t.b2j(b[1])]},t.i2c=function(b,p){return t.evalxy([],b,p)},t.ab2xy=function(b,p,k){if(!k&&(br[i-1]|pn[a-1]))return[!1,!1];var E=t.a2i(b),S=t.b2j(p),L=t.evalxy([],E,S);if(k){var x=0,C=0,M=[],g,P,T,z;br[i-1]?(g=i-2,P=1,x=(b-r[i-1])/(r[i-1]-r[i-2])):(g=Math.max(0,Math.min(i-2,Math.floor(E))),P=E-g),pn[a-1]?(T=a-2,z=1,C=(p-n[a-1])/(n[a-1]-n[a-2])):(T=Math.max(0,Math.min(a-2,Math.floor(S))),z=S-T),x&&(t.dxydi(M,g,T,P,z),L[0]+=M[0]*x,L[1]+=M[1]*x),C&&(t.dxydj(M,g,T,P,z),L[0]+=M[0]*C,L[1]+=M[1]*C)}return L},t.c2p=function(b,p,k){return[p.c2p(b[0]),k.c2p(b[1])]},t.p2x=function(b,p,k){return[p.p2c(b[0]),k.p2c(b[1])]},t.dadi=function(b){var p=Math.max(0,Math.min(r.length-2,b));return r[p+1]-r[p]},t.dbdj=function(b){var p=Math.max(0,Math.min(n.length-2,b));return n[p+1]-n[p]},t.dxyda=function(b,p,k,E){var S=t.dxydi(null,b,p,k,E),L=t.dadi(b,k);return[S[0]/L,S[1]/L]},t.dxydb=function(b,p,k,E){var S=t.dxydj(null,b,p,k,E),L=t.dbdj(p,E);return[S[0]/L,S[1]/L]},t.dxyda_rough=function(b,p,k){var E=h*(k||.1),S=t.ab2xy(b+E,p,!0),L=t.ab2xy(b-E,p,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dxydb_rough=function(b,p,k){var E=d*(k||.1),S=t.ab2xy(b,p+E,!0),L=t.ab2xy(b,p-E,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dpdx=function(b){return b._m},t.dpdy=function(b){return b._m}}});var HYe=ye((Y2r,GYe)=>{\"use strict\";var K7=ho(),OYe=Dr().isArray1D,WKt=aYe(),qYe=uYe(),BYe=fYe(),NYe=pYe(),XKt=mYe(),UYe=n8(),VYe=_Ye(),ZKt=r8(),YKt=zYe();GYe.exports=function(t,r){var n=K7.getFromId(t,r.xaxis),i=K7.getFromId(t,r.yaxis),a=r.aaxis,o=r.baxis,s=r.x,l=r.y,u=[];s&&OYe(s)&&u.push(\"x\"),l&&OYe(l)&&u.push(\"y\"),u.length&&ZKt(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=WKt(d,v,r.cheaterslope)}r._x=s=UYe(s),r._y=l=UYe(l),VYe(s,c,f),VYe(l,c,f),YKt(r),r.setScale();var _=qYe(s),b=qYe(l),p=.5*(_[1]-_[0]),k=.5*(_[1]+_[0]),E=.5*(b[1]-b[0]),S=.5*(b[1]+b[0]),L=1.3;return _=[k-p*L,k+p*L],b=[S-E*L,S+E*L],r._extremes[n._id]=K7.findExtremes(n,_,{padded:!0}),r._extremes[i._id]=K7.findExtremes(i,b,{padded:!0}),BYe(r,\"a\",\"b\"),BYe(r,\"b\",\"a\"),NYe(r,a),NYe(r,o),h.clipsegments=XKt(r._xctrl,r._yctrl,a,o),h.x=s,h.y=l,h.a=c,h.b=f,[h]}});var WYe=ye((K2r,jYe)=>{\"use strict\";jYe.exports={attributes:G7(),supplyDefaults:jZe(),plot:iYe(),calc:HYe(),animatable:!0,isContainer:!0,moduleType:\"trace\",name:\"carpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"carpetAxis\",\"notLegendIsolatable\",\"noMultiCategory\",\"noHover\",\"noSortingByValue\"],meta:{}}});var ZYe=ye((J2r,XYe)=>{\"use strict\";XYe.exports=WYe()});var k$=ye(($2r,JYe)=>{\"use strict\";var KKt=kg(),u0=pf(),JKt=Gl(),{hovertemplateAttrs:$Kt,texttemplateAttrs:QKt,templatefallbackAttrs:YYe}=Ll(),KYe=Tu(),Cx=Ao().extendFlat,sg=u0.marker,N5=u0.line,eJt=sg.line;JYe.exports={carpet:{valType:\"string\",editType:\"calc\"},a:{valType:\"data_array\",editType:\"calc\"},b:{valType:\"data_array\",editType:\"calc\"},mode:Cx({},u0.mode,{dflt:\"markers\"}),text:Cx({},u0.text,{}),texttemplate:QKt({editType:\"plot\"},{keys:[\"a\",\"b\",\"text\"]}),texttemplatefallback:YYe({editType:\"plot\"}),hovertext:Cx({},u0.hovertext,{}),line:{color:N5.color,width:N5.width,dash:N5.dash,backoff:N5.backoff,shape:Cx({},N5.shape,{values:[\"linear\",\"spline\"]}),smoothing:N5.smoothing,editType:\"calc\"},connectgaps:u0.connectgaps,fill:Cx({},u0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:KKt(),marker:Cx({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:Cx({width:eJt.width,editType:\"calc\"},KYe(\"marker.line\")),gradient:sg.gradient,editType:\"calc\"},KYe(\"marker\")),textfont:u0.textfont,textposition:u0.textposition,selected:u0.selected,unselected:u0.unselected,hoverinfo:Cx({},JKt.hoverinfo,{flags:[\"a\",\"b\",\"text\",\"name\"]}),hoveron:u0.hoveron,hovertemplate:$Kt(),hovertemplatefallback:YYe(),zorder:u0.zorder}});var tKe=ye((Q2r,eKe)=>{\"use strict\";var $Ye=Dr(),tJt=Sm(),U5=Ru(),rJt=$p(),iJt=R0(),QYe=eT(),nJt=D0(),aJt=Ig(),oJt=k$();eKe.exports=function(t,r,n,i){function a(h,d){return $Ye.coerce(t,r,oJt,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(\"texttemplatefallback\"),a(\"hovertext\");var u=l{\"use strict\";rKe.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((twr,nKe)=>{\"use strict\";nKe.exports=function(e,t){for(var r=e._fullData.length,n,i=0;i{\"use strict\";var aKe=Eo(),sJt=F0(),lJt=km(),uJt=z0(),cJt=O0().calcMarkerSize,fJt=J7();oKe.exports=function(t,r){var n=r._carpetTrace=fJt(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 hJt=oT(),lKe=ho(),dJt=So();uKe.exports=function(t,r,n,i){var a,o,s,l=n[0][0].carpet,u=lKe.getFromId(t,l.xaxis||\"x\"),c=lKe.getFromId(t,l.yaxis||\"y\"),f={xaxis:u,yaxis:c,plot:r.plot};for(a=0;a{\"use strict\";var vJt=cT(),pJt=Dr().fillText;fKe.exports=function(t,r,n,i){var a=vJt(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 _=[];function b(E,S){var L;E.labelprefix&&E.labelprefix.length>0?L=E.labelprefix.replace(/ = $/,\"\"):L=E._hovertitle,_.push(L+\": \"+S.toFixed(3)+E.labelsuffix)}if(!h.hovertemplate){var p=f.hi||h.hoverinfo,k=p.split(\"+\");k.indexOf(\"all\")!==-1&&(k=[\"a\",\"b\",\"text\"]),k.indexOf(\"a\")!==-1&&b(d.aaxis,f.a),k.indexOf(\"b\")!==-1&&b(d.baxis,f.b),_.push(\"y: \"+o.yLabel),k.indexOf(\"text\")!==-1&&pJt(f,h,_),o.extraText=_.join(\"
\")}return a}});var vKe=ye((awr,dKe)=>{\"use strict\";dKe.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 gKe=ye((owr,pKe)=>{\"use strict\";pKe.exports={attributes:k$(),supplyDefaults:tKe(),colorbar:$d(),formatLabels:iKe(),calc:sKe(),plot:cKe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:hKe(),selectPoints:fT(),eventData:vKe(),moduleType:\"trace\",name:\"scattercarpet\",basePlotModule:ph(),categories:[\"svg\",\"carpet\",\"symbols\",\"showLegend\",\"carpetDependent\",\"zoomScale\"],meta:{}}});var yKe=ye((swr,mKe)=>{\"use strict\";mKe.exports=gKe()});var C$=ye((lwr,_Ke)=>{\"use strict\";var lg=LT(),g1=k4(),gJt=Tu(),mJt=Ao().extendFlat,ry=g1.contours;_Ke.exports=mJt({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:ry.type,start:ry.start,end:ry.end,size:ry.size,coloring:{valType:\"enumerated\",values:[\"fill\",\"lines\",\"none\"],dflt:\"fill\",editType:\"calc\"},showlines:ry.showlines,showlabels:ry.showlabels,labelfont:ry.labelfont,labelformat:ry.labelformat,operation:ry.operation,value:ry.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},gJt(\"\",{cLetter:\"z\",autoColorDflt:!1}))});var L$=ye((uwr,wKe)=>{\"use strict\";var xKe=Dr(),yJt=QI(),bKe=C$(),_Jt=MG(),xJt=T8(),bJt=A8();wKe.exports=function(t,r,n,i){function a(u,c){return xKe.coerce(t,r,bKe,u,c)}function o(u){return xKe.coerce2(t,r,bKe,u)}if(a(\"carpet\"),t.a&&t.b){var s=yJt(t,r,a,i,\"a\",\"b\");if(!s){r.visible=!1;return}a(\"text\");var l=a(\"contours.type\")===\"constraint\";l?_Jt(t,r,a,i,n,{hasHover:!1}):(xJt(t,r,a,o),bJt(t,r,a,i,{hasHover:!1}))}else r._defaultColor=n,r._length=null;a(\"zorder\")}});var MKe=ye((cwr,SKe)=>{\"use strict\";var wJt=gv(),TKe=Dr(),TJt=r8(),AJt=n8(),SJt=a8(),MJt=o8(),AKe=YV(),EJt=L$(),kJt=J7(),CJt=vG();SKe.exports=function(t,r){var n=r._carpetTrace=kJt(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),EJt(a,r,r._defaultColor,t._fullLayout)}var o=LJt(t,r);return CJt(r,r._z),o}};function LJt(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,TKe.isArray1D(t.z)&&TJt(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=AJt(t._z||t.z,t.transpose),t._emptypoints=MJt(f),SJt(f,t._emptypoints);var h=TKe.maxRowLength(f),d=t.xtype===\"scaled\"?\"\":a,v=AKe(t,d,o,s,h,n),_=t.ytype===\"scaled\"?\"\":l,b=AKe(t,_,u,c,f.length,i),p={a:v,b,z:f};return t.contours.type===\"levels\"&&t.contours.coloring!==\"none\"&&wJt(e,t,{vals:f,containerStr:\"\",cLetter:\"z\"}),[p]}});var kKe=ye((fwr,EKe)=>{\"use strict\";var PJt=Dr().isArrayOrTypedArray;EKe.exports=function(e,t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p=PJt(r)?\"a\":\"b\",k=p===\"a\"?e.aaxis:e.baxis,E=k.smoothing,S=p===\"a\"?e.a2i:e.b2j,L=p===\"a\"?r:n,x=p===\"a\"?n:r,C=p===\"a\"?t.a.length:t.b.length,M=p===\"a\"?t.b.length:t.a.length,g=Math.floor(p===\"a\"?e.b2j(x):e.a2i(x)),P=p===\"a\"?function(_e){return e.evalxy([],_e,g)}:function(_e){return e.evalxy([],g,_e)};E&&(o=Math.max(0,Math.min(M-2,g)),s=g-o,a=p===\"a\"?function(_e,Ee){return e.dxydi([],_e,o,Ee,s)}:function(_e,Ee){return e.dxydj([],o,_e,s,Ee)});var T=S(L[0]),z=S(L[1]),O=T0?Math.floor:Math.ceil,Z=O>0?Math.ceil:Math.floor,H=O>0?Math.min:Math.max,N=O>0?Math.max:Math.min,j=G(T+V),re=Z(z-V);c=P(T);var oe=[[c]];for(i=j;i*O{\"use strict\";var Q7=Oa(),e9=A$(),RKe=S$(),sC=So(),m1=Dr(),IJt=gG(),RJt=mG(),dw=E8(),$7=L4(),DJt=bG(),FJt=xG(),zJt=wG(),OJt=J7(),CKe=kKe();DKe.exports=function(t,r,n,i){var a=r.xaxis,o=r.yaxis;m1.makeTraceGroups(i,n,\"contour\").each(function(s){var l=Q7.select(this),u=s[0],c=u.trace,f=c._carpetTrace=OJt(t,c),h=t.calcdata[f.index][0];if(!f.visible||f.visible===\"legendonly\")return;var d=u.a,v=u.b,_=c.contours,b=FJt(_,r,u),p=_.type===\"constraint\",k=_._operation,E=p?k===\"=\"?\"lines\":\"fill\":_.coloring;function S(G){var Z=f.ab2xy(G[0],G[1],!0);return[a.c2p(Z[0]),o.c2p(Z[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]]];IJt(b);var x=(d[d.length-1]-d[0])*1e-8,C=(v[v.length-1]-v[0])*1e-8;RJt(b,x,C);var M=b;_.type===\"constraint\"&&(M=DJt(b,k)),qJt(b,S);var g,P,T,z,O=[];for(z=h.clipsegments.length-1;z>=0;z--)g=h.clipsegments[z],P=e9([],g.x,a.c2p),T=e9([],g.y,o.c2p),P.reverse(),T.reverse(),O.push(RKe(P,T,g.bicubic));var V=\"M\"+O.join(\"L\")+\"Z\";UJt(l,h.clipsegments,a,o,p,E),VJt(c,l,a,o,M,L,S,f,h,E,V),BJt(l,b,t,u,_,r,f),sC.setClipUrl(l,f._clipPathId,t)})};function qJt(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 LKe(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 PKe(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]);return[e[0]/t,e[1]/t]}function IKe(e,t){var r=Math.abs(e[0]*t[0]+e[1]*t[1]),n=Math.sqrt(1-r*r);return n/r}function UJt(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,_=b):Math.abs(h[1]-d[1])=0&&(d=P,_=b):m1.log(\"endpt to newendpt is not vert. or horz.\",h,d,P)}if(_>=0)break;u+=M(h,d),h=d}if(_===t.edgepaths.length){m1.log(\"unclosed perimeter path\");break}l=_,f=c.indexOf(l)===-1,f&&(l=c[0],u+=M(h,d)+\"Z\",h=null)}for(l=0;l{\"use strict\";zKe.exports={attributes:C$(),supplyDefaults:L$(),colorbar:L8(),calc:MKe(),plot:FKe(),style:C8(),moduleType:\"trace\",name:\"contourcarpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"contour\",\"symbols\",\"showLegend\",\"hasLines\",\"carpetDependent\",\"noHover\",\"noSortingByValue\"],meta:{}}});var BKe=ye((vwr,qKe)=>{\"use strict\";qKe.exports=OKe()});var r9=ye((pwr,HKe)=>{\"use strict\";var t9=Dr().extendFlat,lC=pf(),NKe=df().axisHoverFormat,{hovertemplateAttrs:HJt,templatefallbackAttrs:jJt}=Ll(),VKe=Pd().dash,WJt=n3(),GKe=WT(),XJt=GKe.INCREASING.COLOR,ZJt=GKe.DECREASING.COLOR,P$=lC.line;function UKe(e){return{line:{color:t9({},P$.color,{dflt:e}),width:P$.width,dash:VKe,editType:\"style\"},editType:\"style\"}}HKe.exports={xperiod:lC.xperiod,xperiod0:lC.xperiod0,xperiodalignment:lC.xperiodalignment,xhoverformat:NKe(\"x\"),yhoverformat:NKe(\"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:t9({},P$.width,{}),dash:t9({},VKe,{}),editType:\"style\"},increasing:UKe(XJt),decreasing:UKe(ZJt),text:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertext:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertemplate:HJt({},{keys:[\"open\",\"high\",\"low\",\"close\"]}),hovertemplatefallback:jJt(),tickwidth:{valType:\"number\",min:0,max:.5,dflt:.3,editType:\"calc\"},hoverlabel:t9({},WJt.hoverlabel,{split:{valType:\"boolean\",dflt:!1,editType:\"style\"}}),zorder:lC.zorder}});var I$=ye((gwr,jKe)=>{\"use strict\";var YJt=qa(),KJt=Dr();jKe.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=YJt.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,KJt.minRowLength(a))),r._length=f,f}}});var ZKe=ye((mwr,XKe)=>{\"use strict\";var JJt=Dr(),$Jt=I$(),QJt=Pg(),e$t=r9();XKe.exports=function(t,r,n,i){function a(s,l){return JJt.coerce(t,r,e$t,s,l)}var o=$Jt(t,r,a,i);if(!o){r.visible=!1;return}QJt(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),a(\"line.dash\"),WKe(t,r,a,\"increasing\"),WKe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"tickwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function WKe(e,t,r,n){r(n+\".line.color\"),r(n+\".line.width\",t.line.width),r(n+\".line.dash\",t.line.dash)}});var R$=ye((ywr,KKe)=>{\"use strict\";var V5=Dr(),i9=V5._,n9=ho(),t$t=Rg(),uC=fs().BADNUM;function r$t(e,t){var r=n9.getFromId(e,t.xaxis),n=n9.getFromId(e,t.yaxis),i=n$t(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=YKe(e,t,o,s,n,i$t);return t._extremes[r._id]=n9.findExtremes(r,s,{vpad:a/2}),l.length?(V5.extendFlat(l[0].t,{wHover:a/2,tickLen:i}),l):[{t:{empty:!0}}]}function i$t(e,t,r,n){return{o:e,h:t,l:r,c:n}}function YKe(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=V5.isArrayOrTypedArray(t.text),f=V5.isArrayOrTypedArray(t.hovertext),h=!0,d=null,v=!!t.xperiodalignment,_=[],b=0;bd):h=L>k,d=L;var x=a(k,E,S,L);x.pos=p,x.yc=(k+L)/2,x.i=b,x.dir=h?\"increasing\":\"decreasing\",x.x=x.pos,x.y=[S,E],v&&(x.orig_p=r[b]),c&&(x.tx=t.text[b]),f&&(x.htx=t.hovertext[b]),_.push(x)}else _.push({pos:p,empty:!0})}return t._extremes[i._id]=n9.findExtremes(i,V5.concat(l,s),{padded:!0}),_.length&&(_[0].t={labels:{open:i9(e,\"open:\")+\" \",high:i9(e,\"high:\")+\" \",low:i9(e,\"low:\")+\" \",close:i9(e,\"close:\")+\" \"}}),_}function n$t(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 a$t=Oa(),JKe=Dr();$Ke.exports=function(t,r,n,i){var a=r.yaxis,o=r.xaxis,s=!!o.rangebreaks;JKe.makeTraceGroups(i,n,\"trace ohlc\").each(function(l){var u=a$t.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(JKe.identity);v.enter().append(\"path\"),v.exit().remove(),v.attr(\"d\",function(_){if(_.empty)return\"M0,0Z\";var b=o.c2p(_.pos-d,!0),p=o.c2p(_.pos+d,!0),k=s?(b+p)/2:o.c2p(_.pos,!0),E=a.c2p(_.o,!0),S=a.c2p(_.h,!0),L=a.c2p(_.l,!0),x=a.c2p(_.c,!0);return\"M\"+b+\",\"+E+\"H\"+k+\"M\"+k+\",\"+S+\"V\"+L+\"M\"+p+\",\"+x+\"H\"+k})})}});var tJe=ye((xwr,eJe)=>{\"use strict\";var D$=Oa(),o$t=So(),s$t=ka();eJe.exports=function(t,r,n){var i=n||D$.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;D$.select(this).selectAll(\"path\").each(function(s){if(!s.empty){var l=o[s.dir].line;D$.select(this).style(\"fill\",\"none\").call(s$t.stroke,l.color).call(o$t.dashLine,l.dash,l.width).style(\"opacity\",o.selectedpoints&&!s.selected?.3:1)}})})}});var z$=ye((bwr,oJe)=>{\"use strict\";var F$=ho(),l$t=Dr(),a9=vf(),u$t=ka(),c$t=Dr().fillText,rJe=WT(),f$t={increasing:rJe.INCREASING.SYMBOL,decreasing:rJe.DECREASING.SYMBOL};function h$t(e,t,r,n){var i=e.cd,a=i[0].trace;return a.hoverlabel.split?nJe(e,t,r,n):aJe(e,t,r,n)}function iJe(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},_=s.bdPos||s.tickLen,b=s.wHover,p=Math.min(1,_/Math.abs(a.r2c(a.range[1])-a.r2c(a.range[0])));f=e.maxHoverDistance-p,h=e.maxSpikeDistance-p;function k(P){var T=v(P);return a9.inbox(T-b,T+b,f)}function E(P){var T=P[u],z=P[c];return T===z||a9.inbox(T-r,z-r,f)}function S(P){return(k(P)+E(P))/2}var L=a9.getDistanceFunction(n,k,E,S);if(a9.getClosest(i,L,e),e.index===!1)return null;var x=i[e.index];if(x.empty)return null;var C=x.dir,M=o[C],g=M.line.color;return u$t.opacity(g)&&M.line.width?e.color=g:e.color=M.fillcolor,e.x0=a.c2p(x.pos+d-_,!0),e.x1=a.c2p(x.pos+d+_,!0),e.xLabelVal=x.orig_p!==void 0?x.orig_p:x.pos,e.spikeDistance=S(x)*h/f,e.xSpike=a.c2p(x.pos,!0),e}function nJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=[],u=iJe(e,t,r,n);if(!u)return[];var c=i[u.index],f=c.hi||o.hoverinfo||\"\";if(f===\"none\"||f===\"skip\")return[];for(var h=[\"high\",\"open\",\"close\",\"low\"],d={},v=0;v\"+s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat)):(k=l$t.extendFlat({},u),k.y0=k.y1=p,k.yLabelVal=b,k.yLabel=s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat),k.name=\"\",l.push(k),d[b]=k)}return l}function aJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=iJe(e,t,r,n);if(!l)return[];var u=l.index,c=i[u],f=l.index=c.i,h=c.dir;function d(S){return s.labels[S]+F$.hoverLabelText(a,o[S][f],o.yhoverformat)}var v=c.hi||o.hoverinfo||\"\",_=v.split(\"+\"),b=v===\"all\",p=b||_.indexOf(\"y\")!==-1,k=b||_.indexOf(\"text\")!==-1,E=p?[d(\"open\"),d(\"high\"),d(\"low\"),d(\"close\")+\" \"+f$t[h]]:[];return k&&c$t(c,o,E),l.extraText=E.join(\"
\"),l.y0=l.y1=a.c2p(c.yc,!0),[l]}oJe.exports={hoverPoints:h$t,hoverSplit:nJe,hoverOnPoints:aJe}});var O$=ye((wwr,sJe)=>{\"use strict\";sJe.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\";lJe.exports={moduleType:\"trace\",name:\"ohlc\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\"],meta:{},attributes:r9(),supplyDefaults:ZKe(),calc:R$().calc,plot:QKe(),style:tJe(),hoverPoints:z$().hoverPoints,selectPoints:O$()}});var fJe=ye((Awr,cJe)=>{\"use strict\";cJe.exports=uJe()});var B$=ye((Swr,vJe)=>{\"use strict\";var q$=Dr().extendFlat,hJe=df().axisHoverFormat,dp=r9(),G5=_4();function dJe(e){return{line:{color:q$({},G5.line.color,{dflt:e}),width:G5.line.width,editType:\"style\"},fillcolor:G5.fillcolor,editType:\"style\"}}vJe.exports={xperiod:dp.xperiod,xperiod0:dp.xperiod0,xperiodalignment:dp.xperiodalignment,xhoverformat:hJe(\"x\"),yhoverformat:hJe(\"y\"),x:dp.x,open:dp.open,high:dp.high,low:dp.low,close:dp.close,line:{width:q$({},G5.line.width,{}),editType:\"style\"},increasing:dJe(dp.increasing.line.color.dflt),decreasing:dJe(dp.decreasing.line.color.dflt),text:dp.text,hovertext:dp.hovertext,hovertemplate:dp.hovertemplate,hovertemplatefallback:dp.hovertemplatefallback,whiskerwidth:q$({},G5.whiskerwidth,{dflt:0}),hoverlabel:dp.hoverlabel,zorder:G5.zorder}});var mJe=ye((Mwr,gJe)=>{\"use strict\";var d$t=Dr(),v$t=ka(),p$t=I$(),g$t=Pg(),m$t=B$();gJe.exports=function(t,r,n,i){function a(s,l){return d$t.coerce(t,r,m$t,s,l)}var o=p$t(t,r,a,i);if(!o){r.visible=!1;return}g$t(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),pJe(t,r,a,\"increasing\"),pJe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"whiskerwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function pJe(e,t,r,n){var i=r(n+\".line.color\");r(n+\".line.width\",t.line.width),r(n+\".fillcolor\",v$t.addOpacity(i,.5))}});var bJe=ye((Ewr,xJe)=>{\"use strict\";var yJe=Dr(),_Je=ho(),y$t=Rg(),_$t=R$().calcCommon;xJe.exports=function(e,t){var r=e._fullLayout,n=_Je.getFromId(e,t.xaxis),i=_Je.getFromId(e,t.yaxis),a=n.makeCalcdata(t,\"x\"),o=y$t(t,n,\"x\",a).vals,s=_$t(e,t,a,o,i,x$t);return s.length?(yJe.extendFlat(s[0].t,{num:r._numBoxes,dPos:yJe.distinctVals(o).minDiff/2,posLetter:\"x\",valLetter:\"y\"}),r._numBoxes++,s):[{t:{empty:!0}}]};function x$t(e,t,r,n){return{min:r,q1:Math.min(e,n),med:n,q3:Math.max(e,n),max:t}}});var TJe=ye((kwr,wJe)=>{\"use strict\";wJe.exports={moduleType:\"trace\",name:\"candlestick\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\",\"candlestick\",\"boxLayout\"],meta:{},attributes:B$(),layoutAttributes:x4(),supplyLayoutDefaults:XI().supplyLayoutDefaults,crossTraceCalc:YI().crossTraceCalc,supplyDefaults:mJe(),calc:bJe(),plot:KI().plot,layerName:\"boxlayer\",style:JI().style,hoverPoints:z$().hoverPoints,selectPoints:O$()}});var SJe=ye((Cwr,AJe)=>{\"use strict\";AJe.exports=TJe()});var U$=ye((Lwr,MJe)=>{\"use strict\";var s9=Dr(),b$t=ym(),o9=s9.deg2rad,N$=s9.rad2deg;MJe.exports=function(t,r,n){switch(b$t(t,n),t._id){case\"x\":case\"radialaxis\":w$t(t,r);break;case\"angularaxis\":S$t(t,r);break}};function w$t(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 T$t(e,t){return t===\"degrees\"?o9(e):e}function A$t(e,t){return t===\"degrees\"?N$(e):e}function S$t(e,t){var r=e.type;if(r===\"linear\"){var n=e.d2c,i=e.c2d;e.d2c=function(a,o){return T$t(n(a),o)},e.c2d=function(a,o){return i(A$t(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\";EJe.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 c9=ye((Iwr,IJe)=>{\"use strict\";var vw=Dr(),kJe=EM().tester,V$=vw.findIndexOfMin,LJe=vw.isAngleInsideSector,M$t=vw.angleDelta,CJe=vw.angleDist;function E$t(e,t,r,n,i){if(!LJe(t,n))return!1;var a,o;r[0]0?o:1/0},n=V$(t,r),i=vw.mod(n+1,t.length);return[t[n],t[i]]}function u9(e){return Math.abs(e)>1e-10?e:0}function G$(e,t,r){t=t||0,r=r||0;for(var n=e.length,i=new Array(n),a=0;a{\"use strict\";function RJe(e){return e<0?-1:e>0?1:0}function j5(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 W5(e,t){var r=t[0],n=t[1];return[r*e.radius+e.cx,-n*e.radius+e.cy]}function DJe(e,t){return t*e.radius}function F$t(e,t,r,n){var i=W5(e,j5([r,t])),a=i[0],o=i[1],s=W5(e,j5([n,t])),l=s[0],u=s[1];if(t===0)return[\"M\"+a+\",\"+o,\"L\"+l+\",\"+u].join(\" \");var c=DJe(e,1/Math.abs(t));return[\"M\"+a+\",\"+o,\"A\"+c+\",\"+c+\" 0 0,\"+(t<0?1:0)+\" \"+l+\",\"+u].join(\" \")}function z$t(e,t,r,n){var i=DJe(e,1/(t+1)),a=W5(e,j5([t,r])),o=a[0],s=a[1],l=W5(e,j5([t,n])),u=l[0],c=l[1];if(RJe(r)!==RJe(n)){var f=W5(e,j5([t,0])),h=f[0],d=f[1];return[\"M\"+o+\",\"+s,\"A\"+i+\",\"+i+\" 0 0,\"+(0{\"use strict\";var pw=Oa(),O$t=cd(),mw=qa(),Xc=Dr(),iy=Xc.strRotate,xd=Xc.strTranslate,j$=ka(),cC=So(),q$t=Mc(),vp=ho(),B$t=ym(),N$t=U$(),U$t=Tg().doAutoRange,y1=NN(),d9=yv(),zJe=vf(),V$t=Eb(),G$t=Of().prepSelect,H$t=Of().selectOnClick,W$=Of().clearOutline,OJe=Ag(),qJe=dM(),BJe=bM().redrawReglTraces,j$t=$h().MID_SHIFT,Lx=l9(),_1=c9(),v9=H$(),f9=v9.smith,W$t=v9.reactanceArc,X$t=v9.resistanceArc,h9=v9.smithTransform,Z$t=Xc._,NJe=Xc.mod,Px=Xc.deg2rad,gw=Xc.rad2deg;function UJe(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 Nd=UJe.prototype;HJe.exports=function(t,r,n){return new UJe(t,r,n)};Nd.plot=function(e,t){for(var r=this,n=t[r.id],i=!1,a=0;ab?(p=u,k=u*b,L=(c-k)/i.h/2,E=[s[0],s[1]],S=[l[0]+L,l[1]-L]):(p=c/b,k=c,L=(u-p)/i.w/2,E=[s[0]+L,s[1]-L],S=[l[0],l[1]]),r.xLength2=p,r.yLength2=k,r.xDomain2=E,r.yDomain2=S;var x=r.xOffset2=i.l+i.w*E[0],C=r.yOffset2=i.t+i.h*(1-S[1]),M=r.radius=p/d,g=r.innerRadius=r.getHole(t)*M,P=r.cx=x-M*h[0],T=r.cy=C+M*h[3],z=r.cxx=P-x,O=r.cyy=T-C,V=a.side,G;V===\"counterclockwise\"?(G=V,V=\"top\"):V===\"clockwise\"&&(G=V,V=\"bottom\"),r.radialAxis=r.mockAxis(e,t,a,{_id:\"x\",side:V,_trueSide:G,domain:[g/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:E}),r.yaxis=r.mockCartesianAxis(e,t,{_id:\"y\",domain:S});var Z=r.pathSubplot();r.clipPaths.forTraces.select(\"path\").attr(\"d\",Z).attr(\"transform\",xd(z,O)),n.frontplot.attr(\"transform\",xd(x,C)).call(cC.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr(\"d\",Z).attr(\"transform\",xd(P,T)).call(j$.fill,t.bgcolor)};Nd.mockAxis=function(e,t,r,n){var i=Xc.extendFlat({},r,n);return N$t(i,t,e),i};Nd.mockCartesianAxis=function(e,t,r){var n=this,i=n.isSmith,a=r._id,o=Xc.extendFlat({type:\"linear\"},r);B$t(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};Nd.doAutoRange=function(e,t){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(t);U$t(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 g=h9(r,f9([M.x,0]));return xd(g[0]-s,g[1]-l)}:function(M){return xd(f.l2p(M.x)+o,0)},_=d?function(M){return X$t(r,M.x,-1/0,1/0)}:function(M){return r.pathArc(f.r2p(M.x)+o)},b=VJe(u);if(r.radialTickLayout!==b&&(i[\"radial-axis\"].selectAll(\".xtick\").remove(),r.radialTickLayout=b),h){f.setScale();var p=0,k=d?(f.tickvals||[]).filter(function(M){return M>=0}).map(function(M){return vp.tickText(f,M,!0,!1)}):vp.calcTicks(f),E=d?k:vp.clipEnds(f,k),S=vp.getTickSigns(f)[2];d&&((f.ticks===\"top\"&&f.side===\"bottom\"||f.ticks===\"bottom\"&&f.side===\"top\")&&(S=-S),f.ticks===\"top\"&&f.side===\"top\"&&(p=-f.ticklen),f.ticks===\"bottom\"&&f.side===\"bottom\"&&(p=f.ticklen)),vp.drawTicks(n,f,{vals:k,layer:i[\"radial-axis\"],path:vp.makeTickPath(f,0,S),transFn:v,crisp:!1}),vp.drawGrid(n,f,{vals:E,layer:i[\"radial-grid\"],path:_,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,f,{vals:k,layer:i[\"radial-axis\"],transFn:v,labelFns:vp.makeLabelFns(f,p)})}var L=r.radialAxisAngle=r.vangles?gw(GJe(Px(u.angle),r.vangles)):u.angle,x=xd(s,l),C=x+iy(-L);fC(i[\"radial-axis\"],h&&(u.showticklabels||u.ticks),{transform:C}),fC(i[\"radial-grid\"],h&&u.showgrid,{transform:d?\"\":x}),fC(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(j$.stroke,u.linecolor)};Nd.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=cC.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,_=Px(v),b=Math.cos(_),p=Math.sin(_),k=o+a/2*b+c*p,E=s-a/2*p+c*b;n.layers[\"radial-axis-title\"]=V$t.draw(i,u,{propContainer:l,propName:n.id+\".radialaxis.title.text\",placeholder:Z$t(i,\"Click to enter radial axis title\"),attributes:{x:k,y:E,\"text-anchor\":\"middle\"},transform:{rotate:-v}})}};Nd.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(g){var P=h9(r,f9([0,g.x]));return Math.atan2(P[0]-s,P[1]-l)-Math.PI/2}:function(g){return c.t2g(g.x)};c.type===\"linear\"&&c.thetaunit===\"radians\"&&(c.tick0=gw(c.tick0),c.dtick=gw(c.dtick));var d=function(g){return xd(s+a*Math.cos(g),l-a*Math.sin(g))},v=f?function(g){var P=h9(r,f9([0,g.x]));return xd(P[0],P[1])}:function(g){return d(h(g))},_=f?function(g){var P=h9(r,f9([0,g.x])),T=Math.atan2(P[0]-s,P[1]-l)-Math.PI/2;return xd(P[0],P[1])+iy(-gw(T))}:function(g){var P=h(g);return d(P)+iy(-gw(P))},b=f?function(g){return W$t(r,g.x,0,1/0)}:function(g){var P=h(g),T=Math.cos(P),z=Math.sin(P);return\"M\"+[s+o*T,l-o*z]+\"L\"+[s+a*T,l-a*z]},p=vp.makeLabelFns(c,0),k=p.labelStandoff,E={};E.xFn=function(g){var P=h(g);return Math.cos(P)*k},E.yFn=function(g){var P=h(g),T=Math.sin(P)>0?.2:1;return-Math.sin(P)*(k+g.fontSize*T)+Math.abs(Math.cos(P))*(g.fontSize*j$t)},E.anchorFn=function(g){var P=h(g),T=Math.cos(P);return Math.abs(T)<.1?\"middle\":T>0?\"start\":\"end\"},E.heightFn=function(g,P,T){var z=h(g);return-.5*(1+Math.sin(z))*T};var S=VJe(u);r.angularTickLayout!==S&&(i[\"angular-axis\"].selectAll(\".\"+c._id+\"tick\").remove(),r.angularTickLayout=S);var L=f?[1/0].concat(c.tickvals||[]).map(function(g){return vp.tickText(c,g,!0,!1)}):vp.calcTicks(c);f&&(L[0].text=\"\\u221E\",L[0].fontSize*=1.75);var x;if(t.gridshape===\"linear\"?(x=L.map(h),Xc.angleDelta(x[0],x[1])<0&&(x=x.slice().reverse())):x=null,r.vangles=x,c.type===\"category\"&&(L=L.filter(function(g){return Xc.isAngleInsideSector(h(g),r.sectorInRad)})),c.visible){var C=c.ticks===\"inside\"?-1:1,M=(c.linewidth||1)/2;vp.drawTicks(n,c,{vals:L,layer:i[\"angular-axis\"],path:\"M\"+C*M+\",0h\"+C*c.ticklen,transFn:_,crisp:!1}),vp.drawGrid(n,c,{vals:L,layer:i[\"angular-grid\"],path:b,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,c,{vals:L,layer:i[\"angular-axis\"],repositionOnUpdate:!0,transFn:v,labelFns:E})}fC(i[\"angular-line\"].select(\"path\"),u.showline,{d:r.pathSubplot(),transform:xd(s,l)}).attr(\"stroke-width\",u.linewidth).call(j$.stroke,u.linecolor)};Nd.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)}};Nd.updateHoverAndMainDrag=function(e){var t=this,r=t.isSmith,n=t.gd,i=t.layers,a=e._zoomlayer,o=Lx.MINZOOM,s=Lx.OFFEDGE,l=t.radius,u=t.innerRadius,c=t.cx,f=t.cy,h=t.cxx,d=t.cyy,v=t.sectorInRad,_=t.vangles,b=t.radialAxis,p=_1.clampTiny,k=_1.findXYatLength,E=_1.findEnclosingVertexAngles,S=Lx.cornerHalfWidth,L=Lx.cornerLen/2,x,C,M=y1.makeDragger(i,\"path\",\"maindrag\",e.dragmode===!1?\"none\":\"crosshair\");pw.select(M).attr(\"d\",t.pathSubplot()).attr(\"transform\",xd(c,f)),M.onmousemove=function(ce){zJe.hover(n,ce,t.id),n._fullLayout._lasthover=M,n._fullLayout._hoversubplot=t.id},M.onmouseout=function(ce){n._dragging||d9.unhover(n,ce)};var g={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,z,O,V,G,Z,H,N;function j(ce,Ze){return Math.sqrt(ce*ce+Ze*Ze)}function re(ce,Ze){return j(ce-h,Ze-d)}function oe(ce,Ze){return Math.atan2(d-Ze,ce-h)}function _e(ce,Ze){return[ce*Math.cos(Ze),ce*Math.sin(-Ze)]}function Ee(ce,Ze){if(ce===0)return t.pathSector(2*S);var ut=L/ce,pt=Ze-ut,Zt=Ze+ut,st=Math.max(0,Math.min(ce,l)),lt=st-S,Gt=st+S;return\"M\"+_e(lt,pt)+\"A\"+[lt,lt]+\" 0,0,0 \"+_e(lt,Zt)+\"L\"+_e(Gt,Zt)+\"A\"+[Gt,Gt]+\" 0,0,1 \"+_e(Gt,pt)+\"Z\"}function Ce(ce,Ze,ut){if(ce===0)return t.pathSector(2*S);var pt=_e(ce,Ze),Zt=_e(ce,ut),st=p((pt[0]+Zt[0])/2),lt=p((pt[1]+Zt[1])/2),Gt,Nt;if(st&<){var Jt=lt/st,sr=-1/Jt,wr=k(S,Jt,st,lt);Gt=k(L,sr,wr[0][0],wr[0][1]),Nt=k(L,sr,wr[1][0],wr[1][1])}else{var cr,$e;lt?(cr=L,$e=S):(cr=S,$e=L),Gt=[[st-cr,lt-$e],[st+cr,lt-$e]],Nt=[[st-cr,lt+$e],[st+cr,lt+$e]]}return\"M\"+Gt.join(\"L\")+\"L\"+Nt.reverse().join(\"L\")+\"Z\"}function me(){z=null,O=null,V=t.pathSubplot(),G=!1;var ce=n._fullLayout[t.id];Z=O$t(ce.bgcolor).getLuminance(),H=y1.makeZoombox(a,Z,c,f,V),H.attr(\"fill-rule\",\"evenodd\"),N=y1.makeCorners(a,c,f),W$(n)}function ie(ce,Ze){return Ze=Math.max(Math.min(Ze,l),u),ceo?(ce-1&&ce===1&&H$t(Ze,n,[t.xaxis],[t.yaxis],t.id,g),ut.indexOf(\"event\")>-1&&zJe.click(n,Ze,t.id)}g.prepFn=function(ce,Ze,ut){var pt=n._fullLayout.dragmode,Zt=M.getBoundingClientRect();n._fullLayout._calcInverseTransform(n);var st=n._fullLayout._invTransform;x=n._fullLayout._invScaleX,C=n._fullLayout._invScaleY;var lt=Xc.apply3DTransform(st)(Ze-Zt.left,ut-Zt.top);if(P=lt[0],T=lt[1],_){var Gt=_1.findPolygonOffset(l,v[0],v[1],_);P+=h+Gt[0],T+=d+Gt[1]}switch(pt){case\"zoom\":g.clickFn=Re,r||(_?g.moveFn=Fe:g.moveFn=Le,g.doneFn=Pe,me(ce,Ze,ut));break;case\"select\":case\"lasso\":G$t(ce,Ze,ut,g,pt);break}},d9.init(g)};Nd.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=Lx.radialDragBoxSize,h=f/2;if(!c.visible)return;var d=Px(n.radialAxisAngle),v=c._rl,_=v[0],b=v[1],p=v[r],k=.75*(v[1]-v[0])/(1-n.getHole(t))/o,E,S,L;r?(E=l+(o+h)*Math.cos(d),S=u-(o+h)*Math.sin(d),L=\"radialdrag\"):(E=l+(s-h)*Math.cos(d),S=u-(s-h)*Math.sin(d),L=\"radialdrag-inner\");var x=y1.makeRectDragger(a,L,\"crosshair\",-h,-h,f,f),C={element:x,gd:i};e.dragmode===!1&&(C.dragmode=!1),fC(pw.select(x),c.visible&&s0!=(r?P>_: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 GJe(e,t){var r=function(i){return Xc.angleDist(e,i)},n=Xc.findIndexOfMin(t,r);return t[n]}function fC(e,t,r){return t?(e.attr(\"display\",null),e.attr(r)):e&&e.attr(\"display\",\"none\"),e}});var Z$=ye((Fwr,KJe)=>{\"use strict\";var K$t=Lh(),os=Rd(),J$t=Cc().attributes,c0=Dr().extendFlat,jJe=mc().overrideAll,WJe=jJe({color:os.color,showline:c0({},os.showline,{dflt:!0}),linecolor:os.linecolor,linewidth:os.linewidth,showgrid:c0({},os.showgrid,{dflt:!0}),gridcolor:os.gridcolor,gridwidth:os.gridwidth,griddash:os.griddash},\"plot\",\"from-root\"),XJe=jJe({tickmode:os.minor.tickmode,nticks:os.nticks,tick0:os.tick0,dtick:os.dtick,tickvals:os.tickvals,ticktext:os.ticktext,ticks:os.ticks,ticklen:os.ticklen,tickwidth:os.tickwidth,tickcolor:os.tickcolor,ticklabelstep:os.ticklabelstep,showticklabels:os.showticklabels,labelalias:os.labelalias,minorloglabels:os.minorloglabels,showtickprefix:os.showtickprefix,tickprefix:os.tickprefix,showticksuffix:os.showticksuffix,ticksuffix:os.ticksuffix,showexponent:os.showexponent,exponentformat:os.exponentformat,minexponent:os.minexponent,separatethousands:os.separatethousands,tickfont:os.tickfont,tickangle:os.tickangle,tickformat:os.tickformat,tickformatstops:os.tickformatstops,layer:os.layer},\"plot\",\"from-root\"),ZJe={visible:c0({},os.visible,{dflt:!0}),type:c0({},os.type,{values:[\"-\",\"linear\",\"log\",\"date\",\"category\"]}),autotypenumbers:os.autotypenumbers,autorangeoptions:{minallowed:os.autorangeoptions.minallowed,maxallowed:os.autorangeoptions.maxallowed,clipmin:os.autorangeoptions.clipmin,clipmax:os.autorangeoptions.clipmax,include:os.autorangeoptions.include,editType:\"plot\"},autorange:c0({},os.autorange,{editType:\"plot\"}),rangemode:{valType:\"enumerated\",values:[\"tozero\",\"nonnegative\",\"normal\"],dflt:\"tozero\",editType:\"calc\"},minallowed:c0({},os.minallowed,{editType:\"plot\"}),maxallowed:c0({},os.maxallowed,{editType:\"plot\"}),range:c0({},os.range,{items:[{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}},{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}}],editType:\"plot\"}),categoryorder:os.categoryorder,categoryarray:os.categoryarray,angle:{valType:\"angle\",editType:\"plot\"},autotickangles:os.autotickangles,side:{valType:\"enumerated\",values:[\"clockwise\",\"counterclockwise\"],dflt:\"clockwise\",editType:\"plot\"},title:{text:c0({},os.title.text,{editType:\"plot\",dflt:\"\"}),font:c0({},os.title.font,{editType:\"plot\"}),editType:\"plot\"},hoverformat:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(ZJe,WJe,XJe);var YJe={visible:c0({},os.visible,{dflt:!0}),type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"category\"],dflt:\"-\",editType:\"calc\",_noTemplating:!0},autotypenumbers:os.autotypenumbers,categoryorder:os.categoryorder,categoryarray:os.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:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(YJe,WJe,XJe);KJe.exports={domain:J$t({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:K$t.background},radialaxis:ZJe,angularaxis:YJe,gridshape:{valType:\"enumerated\",values:[\"circular\",\"linear\"],dflt:\"circular\",editType:\"plot\"},uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"}});var e$e=ye((zwr,QJe)=>{\"use strict\";var p9=Dr(),$$t=ka(),Q$t=vl(),eQt=k_(),tQt=Id().getSubplotData,rQt=bb(),iQt=S3(),nQt=e_(),aQt=t_(),oQt=aI(),sQt=e4(),lQt=yB(),uQt=I3(),$Je=Z$(),cQt=U$(),g9=l9(),JJe=g9.axisNames;function fQt(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=$$t.combine(i,n.paper_bgcolor);var a=r(\"sector\");r(\"hole\");var o=tQt(n.fullData,g9.name,n.id),s=n.layoutOut,l;function u(H,N){return r(l+\".\"+H,N)}for(var c=0;c{\"use strict\";var dQt=Id().getSubplotCalcData,vQt=Dr().counterRegex,pQt=X$(),r$e=l9(),i$e=r$e.attr,yw=r$e.name,t$e=vQt(yw),n$e={};n$e[i$e]={valType:\"subplotid\",dflt:yw,editType:\"calc\"};function gQt(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[yw],i=0;i{\"use strict\";var{hovertemplateAttrs:yQt,texttemplateAttrs:_Qt,templatefallbackAttrs:o$e}=Ll(),y9=Ao().extendFlat,xQt=kg(),f0=pf(),bQt=Gl(),X5=f0.line;s$e.exports={mode:f0.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:f0.text,texttemplate:_Qt({editType:\"plot\"},{keys:[\"r\",\"theta\",\"text\"]}),texttemplatefallback:o$e({editType:\"plot\"}),hovertext:f0.hovertext,line:{color:X5.color,width:X5.width,dash:X5.dash,backoff:X5.backoff,shape:y9({},X5.shape,{values:[\"linear\",\"spline\"]}),smoothing:X5.smoothing,editType:\"calc\"},connectgaps:f0.connectgaps,marker:f0.marker,cliponaxis:y9({},f0.cliponaxis,{dflt:!1}),textposition:f0.textposition,textfont:f0.textfont,fill:y9({},f0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:xQt(),hoverinfo:y9({},bQt.hoverinfo,{flags:[\"r\",\"theta\",\"text\",\"name\"]}),hoveron:f0.hoveron,hovertemplate:yQt(),hovertemplatefallback:o$e(),selected:f0.selected,unselected:f0.unselected}});var x9=ye((Bwr,c$e)=>{\"use strict\";var _9=Dr(),Z5=Ru(),wQt=$p(),TQt=R0(),l$e=eT(),AQt=D0(),SQt=Ig(),MQt=Sm().PTS_LINESONLY,EQt=hC();function kQt(e,t,r,n){function i(s,l){return _9.coerce(e,t,EQt,s,l)}var a=u$e(e,t,n,i);if(!a){t.visible=!1;return}i(\"thetaunit\"),i(\"mode\",a{\"use strict\";var CQt=Dr(),f$e=ho();h$e.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=f$e.tickText(o,l,!0).text;var u=s.thetaunit===\"degrees\"?CQt.rad2deg(t.theta):t.theta;return i.thetaLabel=f$e.tickText(s,u,!0).text,i}});var p$e=ye((Uwr,v$e)=>{\"use strict\";var d$e=Eo(),LQt=fs().BADNUM,PQt=ho(),IQt=F0(),RQt=km(),DQt=z0(),FQt=O0().calcMarkerSize;v$e.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 zQt=oT(),g$e=fs().BADNUM;m$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=r.radialAxis,u=r.angularAxis,c=0;c{\"use strict\";var OQt=cT();function qQt(e,t,r,n){var i=OQt(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,_$e(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function _$e(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(\"
\")}}x$e.exports={hoverPoints:qQt,makeHoverPointText:_$e}});var w$e=ye((Hwr,b$e)=>{\"use strict\";b$e.exports={moduleType:\"trace\",name:\"scatterpolar\",basePlotModule:m9(),categories:[\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:hC(),supplyDefaults:x9().supplyDefaults,colorbar:$d(),formatLabels:b9(),calc:p$e(),plot:y$e(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:w9().hoverPoints,selectPoints:fT(),meta:{}}});var A$e=ye((jwr,T$e)=>{\"use strict\";T$e.exports=w$e()});var Y$=ye((Zwr,M$e)=>{\"use strict\";var S$e=hC(),{cliponaxis:Wwr,hoveron:Xwr}=S$e,BQt=lee(S$e,[\"cliponaxis\",\"hoveron\"]),{connectgaps:NQt,line:{color:UQt,dash:VQt,width:GQt},fill:HQt,fillcolor:jQt,marker:WQt,textfont:XQt,textposition:ZQt}=lk();M$e.exports=q1(mg({},BQt),{connectgaps:NQt,fill:HQt,fillcolor:jQt,line:{color:UQt,dash:VQt,editType:\"calc\",width:GQt},marker:WQt,textfont:XQt,textposition:ZQt})});var C$e=ye((Kwr,k$e)=>{\"use strict\";var E$e=Dr(),K$=Ru(),YQt=x9().handleRThetaDefaults,KQt=$p(),JQt=R0(),$Qt=D0(),QQt=Ig(),eer=Sm().PTS_LINESONLY,ter=Y$();k$e.exports=function(t,r,n,i){function a(s,l){return E$e.coerce(t,r,ter,s,l)}var o=YQt(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"mode\",o{\"use strict\";var rer=b9();L$e.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]),rer(t,r,n)}});var R$e=ye(($wr,I$e)=>{\"use strict\";var ier=F0(),ner=O0().calcMarkerSize,aer=K2(),oer=ho(),ser=ox().TOO_MANY_POINTS;I$e.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 ler=NF(),uer=w9().makeHoverPointText;function cer(e,t,r,n){var i=e.cd,a=i[0].t,o=a.r,s=a.theta,l=ler.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,uer(f,h,c,u),l}}D$e.exports={hoverPoints:cer}});var O$e=ye((e3r,z$e)=>{\"use strict\";z$e.exports={moduleType:\"trace\",name:\"scatterpolargl\",basePlotModule:m9(),categories:[\"gl\",\"regl\",\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:Y$(),supplyDefaults:C$e(),colorbar:$d(),formatLabels:P$e(),calc:R$e(),hoverPoints:F$e().hoverPoints,selectPoints:lY(),meta:{}}});var q$e=ye((t3r,J$)=>{\"use strict\";var fer=GF(),her=Eo(),der=hK(),ver=aY(),T9=K2(),A9=Dr(),per=ox().TOO_MANY_POINTS,ger={};J$.exports=function(t,r,n){if(n.length){var i=r.radialAxis,a=r.angularAxis,o=ver(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,_,b=h.slice(),p=d.slice();for(_=0;_=per&&(v.marker.cluster=c.tree),v.marker&&(v.markerSel.positions=v.markerUnsel.positions=v.marker.positions=k),v.line&&k.length>1&&A9.extendFlat(v.line,T9.linePositions(t,u,k)),v.text&&(A9.extendFlat(v.text,{positions:k},T9.textPosition(t,u,v.text,v.marker)),A9.extendFlat(v.textSel,{positions:k},T9.textPosition(t,u,v.text,v.markerSel)),A9.extendFlat(v.textUnsel,{positions:k},T9.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=E,c.y=S,c.rawx=E,c.rawy=S,c.r=h,c.theta=d,c.positions=k,c._scene=o,c.index=o.count,o.count++}}),der(t,r,n)}};J$.exports.reglPrecompiled=ger});var U$e=ye((r3r,N$e)=>{\"use strict\";var B$e=O$e();B$e.plot=q$e();N$e.exports=B$e});var G$e=ye((i3r,V$e)=>{\"use strict\";V$e.exports=U$e()});var $$=ye((n3r,H$e)=>{\"use strict\";var{hovertemplateAttrs:mer,templatefallbackAttrs:yer}=Ll(),Y5=Ao().extendFlat,Ix=hC(),Rx=Lm();H$e.exports={r:Ix.r,theta:Ix.theta,r0:Ix.r0,dr:Ix.dr,theta0:Ix.theta0,dtheta:Ix.dtheta,thetaunit:Ix.thetaunit,base:Y5({},Rx.base,{}),offset:Y5({},Rx.offset,{}),width:Y5({},Rx.width,{}),text:Y5({},Rx.text,{}),hovertext:Y5({},Rx.hovertext,{}),marker:_er(),hoverinfo:Ix.hoverinfo,hovertemplate:mer(),hovertemplatefallback:yer(),selected:Rx.selected,unselected:Rx.unselected};function _er(){var e=Y5({},Rx.marker);return delete e.cornerradius,e}});var Q$=ye((a3r,j$e)=>{\"use strict\";j$e.exports={barmode:{valType:\"enumerated\",values:[\"stack\",\"overlay\"],dflt:\"stack\",editType:\"calc\"},bargap:{valType:\"number\",dflt:.1,min:0,max:1,editType:\"calc\"}}});var Z$e=ye((o3r,X$e)=>{\"use strict\";var W$e=Dr(),xer=x9().handleRThetaDefaults,ber=UI(),wer=$$();X$e.exports=function(t,r,n,i){function a(s,l){return W$e.coerce(t,r,wer,s,l)}var o=xer(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"base\"),a(\"offset\"),a(\"width\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),ber(t,r,a,n,i),W$e.coerceSelectionMarkerOpacity(r,a)}});var K$e=ye((s3r,Y$e)=>{\"use strict\";var Ter=Dr(),Aer=Q$();Y$e.exports=function(e,t,r){var n={},i;function a(l,u){return Ter.coerce(e[i]||{},t[i],Aer,l,u)}for(var o=0;o{\"use strict\";var J$e=pv().hasColorscale,$$e=gv(),Ser=Dr().isArrayOrTypedArray,Mer=p4(),Eer=jb().setGroupPositions,ker=z0(),Cer=qa().traceIs,Ler=Dr().extendFlat;function Per(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 eQe=Oa(),S9=Eo(),K5=Dr(),Rer=So(),tQ=c9();tQe.exports=function(t,r,n){var i=t._context.staticPlot,a=r.xaxis,o=r.yaxis,s=r.radialAxis,l=r.angularAxis,u=Der(r),c=r.layers.frontplot.select(\"g.barlayer\");K5.makeTraceGroups(c,n,\"trace bars\").each(function(){var f=eQe.select(this),h=K5.ensureSingle(f,\"g\",\"points\"),d=h.selectAll(\"g.point\").data(K5.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 _=eQe.select(this),b=v.rp0=s.c2p(v.s0),p=v.rp1=s.c2p(v.s1),k=v.thetag0=l.c2g(v.p0),E=v.thetag1=l.c2g(v.p1),S;if(!S9(b)||!S9(p)||!S9(k)||!S9(E)||b===p||k===E)S=\"M0,0Z\";else{var L=s.c2g(v.s1),x=(k+E)/2;v.ct=[a.c2p(L*Math.cos(x)),o.c2p(L*Math.sin(x))],S=u(b,p,k,E)}K5.ensureSingle(_,\"path\").attr(\"d\",S)}),Rer.setClipUrl(f,r._hasClipOnAxisFalse?r.clipIds.forTraces:null,t)})};function Der(e){var t=e.cxx,r=e.cyy;return e.vangles?function(n,i,a,o){var s,l;K5.angleDelta(a,o)>0?(s=a,l=o):(s=o,l=a);var u=tQ.findEnclosingVertexAngles(s,e.vangles)[0],c=tQ.findEnclosingVertexAngles(l,e.vangles)[1],f=[u,(s+l)/2,c];return tQ.pathPolygonAnnulus(n,i,s,l,f,t,r)}:function(n,i,a,o){return K5.pathAnnulus(n,i,a,o,t,r)}}});var nQe=ye((c3r,iQe)=>{\"use strict\";var Fer=vf(),rQ=Dr(),zer=MT().getTraceColor,Oer=rQ.fillText,qer=w9().makeHoverPointText,Ber=c9().isPtInsidePolygon;iQe.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?Ber:rQ.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 _=function(E){return c(d,v,[E.rp0,E.rp1],[E.thetag0,E.thetag1],u)?f+Math.min(1,Math.abs(E.thetag1-E.thetag0)/h)-1+(E.rp1-d)/(E.rp1-E.rp0)-1:1/0};if(Fer.getClosest(i,_,t),t.index!==!1){var b=t.index,p=i[b];t.x0=t.x1=p.ct[0],t.y0=t.y1=p.ct[1];var k=rQ.extendFlat({},p,{r:p.s,theta:p.p});return Oer(p,a,t),qer(k,a,o,t),t.hovertemplate=a.hovertemplate,t.color=zer(a,p),t.xLabelVal=t.yLabelVal=void 0,p.s<0&&(t.idealAlign=\"left\"),[t]}}});var oQe=ye((f3r,aQe)=>{\"use strict\";aQe.exports={moduleType:\"trace\",name:\"barpolar\",basePlotModule:m9(),categories:[\"polar\",\"bar\",\"showLegend\"],attributes:$$(),layoutAttributes:Q$(),supplyDefaults:Z$e(),supplyLayoutDefaults:K$e(),calc:eQ().calc,crossTraceCalc:eQ().crossTraceCalc,plot:rQe(),colorbar:$d(),formatLabels:b9(),style:N0().style,styleOnSelect:N0().styleOnSelect,hoverPoints:nQe(),selectPoints:ET(),meta:{}}});var lQe=ye((h3r,sQe)=>{\"use strict\";sQe.exports=oQe()});var iQ=ye((d3r,uQe)=>{\"use strict\";uQe.exports={attr:\"subplot\",name:\"smith\",axisNames:[\"realaxis\",\"imaginaryaxis\"],axisName2dataArray:{imaginaryaxis:\"imag\",realaxis:\"real\"}}});var nQ=ye((v3r,dQe)=>{\"use strict\";var Ner=Lh(),Nf=Rd(),Uer=Cc().attributes,Dx=Dr().extendFlat,cQe=mc().overrideAll,fQe=cQe({color:Nf.color,showline:Dx({},Nf.showline,{dflt:!0}),linecolor:Nf.linecolor,linewidth:Nf.linewidth,showgrid:Dx({},Nf.showgrid,{dflt:!0}),gridcolor:Nf.gridcolor,gridwidth:Nf.gridwidth,griddash:Nf.griddash},\"plot\",\"from-root\"),hQe=cQe({ticklen:Nf.ticklen,tickwidth:Dx({},Nf.tickwidth,{dflt:2}),tickcolor:Nf.tickcolor,showticklabels:Nf.showticklabels,labelalias:Nf.labelalias,showtickprefix:Nf.showtickprefix,tickprefix:Nf.tickprefix,showticksuffix:Nf.showticksuffix,ticksuffix:Nf.ticksuffix,tickfont:Nf.tickfont,tickformat:Nf.tickformat,hoverformat:Nf.hoverformat,layer:Nf.layer},\"plot\",\"from-root\"),Ver=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{dflt:[.2,.5,1,2,5],valType:\"data_array\",editType:\"plot\"},tickangle:Dx({},Nf.tickangle,{dflt:90}),ticks:{valType:\"enumerated\",values:[\"top\",\"bottom\",\"\"],editType:\"ticks\"},side:{valType:\"enumerated\",values:[\"top\",\"bottom\"],dflt:\"top\",editType:\"plot\"},editType:\"calc\"},fQe,hQe),Ger=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{valType:\"data_array\",editType:\"plot\"},ticks:Nf.ticks,editType:\"calc\"},fQe,hQe);dQe.exports={domain:Uer({name:\"smith\",editType:\"plot\"}),bgcolor:{valType:\"color\",editType:\"plot\",dflt:Ner.background},realaxis:Ver,imaginaryaxis:Ger,editType:\"calc\"}});var gQe=ye((p3r,pQe)=>{\"use strict\";var J5=Dr(),Her=ka(),jer=vl(),Wer=k_(),Xer=Id().getSubplotData,Zer=t_(),Yer=e_(),Ker=e4(),Jer=ym(),$5=nQ(),aQ=iQ(),vQe=aQ.axisNames,$er=etr(function(e){return J5.isTypedArray(e)&&(e=Array.from(e)),e.slice().reverse().map(function(t){return-t}).concat([0]).concat(e)},String);function Qer(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=Her.combine(i,n.paper_bgcolor);var a=Xer(n.fullData,aQ.name,n.id),o=n.layoutOut,s;function l(L,x){return r(s+\".\"+L,x)}for(var u=0;u{\"use strict\";var ttr=Id().getSubplotCalcData,rtr=Dr().counterRegex,itr=X$(),yQe=iQ(),_Qe=yQe.attr,_w=yQe.name,mQe=rtr(_w),xQe={};xQe[_Qe]={valType:\"subplotid\",dflt:_w,editType:\"calc\"};function ntr(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[_w],i=0;i{\"use strict\";var{hovertemplateAttrs:otr,texttemplateAttrs:str,templatefallbackAttrs:TQe}=Ll(),M9=Ao().extendFlat,ltr=kg(),h0=pf(),utr=Gl(),Q5=h0.line;AQe.exports={mode:h0.mode,real:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},imag:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},text:h0.text,texttemplate:str({editType:\"plot\"},{keys:[\"real\",\"imag\",\"text\"]}),texttemplatefallback:TQe({editType:\"plot\"}),hovertext:h0.hovertext,line:{color:Q5.color,width:Q5.width,dash:Q5.dash,backoff:Q5.backoff,shape:M9({},Q5.shape,{values:[\"linear\",\"spline\"]}),smoothing:Q5.smoothing,editType:\"calc\"},connectgaps:h0.connectgaps,marker:h0.marker,cliponaxis:M9({},h0.cliponaxis,{dflt:!1}),textposition:h0.textposition,textfont:h0.textfont,fill:M9({},h0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:ltr(),hoverinfo:M9({},utr.hoverinfo,{flags:[\"real\",\"imag\",\"text\",\"name\"]}),hoveron:h0.hoveron,hovertemplate:otr(),hovertemplatefallback:TQe(),selected:h0.selected,unselected:h0.unselected}});var EQe=ye((y3r,MQe)=>{\"use strict\";var E9=Dr(),eS=Ru(),ctr=$p(),ftr=R0(),SQe=eT(),htr=D0(),dtr=Ig(),vtr=Sm().PTS_LINESONLY,ptr=oQ();MQe.exports=function(t,r,n,i){function a(l,u){return E9.coerce(t,r,ptr,l,u)}var o=gtr(t,r,i,a);if(!o){r.visible=!1;return}a(\"mode\",o{\"use strict\";var kQe=ho();CQe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot;return i.realLabel=kQe.tickText(a.radialAxis,t.real,!0).text,i.imagLabel=kQe.tickText(a.angularAxis,t.imag,!0).text,i}});var RQe=ye((x3r,IQe)=>{\"use strict\";var PQe=Eo(),mtr=fs().BADNUM,ytr=F0(),_tr=km(),xtr=z0(),btr=O0().calcMarkerSize;IQe.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 wtr=oT(),DQe=fs().BADNUM,Ttr=H$(),Atr=Ttr.smith;FQe.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 Str=cT();function Mtr(e,t,r,n){var i=Str(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,OQe(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function OQe(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(\"
\")}}qQe.exports={hoverPoints:Mtr,makeHoverPointText:OQe}});var UQe=ye((T3r,NQe)=>{\"use strict\";NQe.exports={moduleType:\"trace\",name:\"scattersmith\",basePlotModule:wQe(),categories:[\"smith\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:oQ(),supplyDefaults:EQe(),colorbar:$d(),formatLabels:LQe(),calc:RQe(),plot:zQe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:BQe().hoverPoints,selectPoints:fT(),meta:{}}});var GQe=ye((A3r,VQe)=>{\"use strict\";VQe.exports=UQe()});var kv=ye((S3r,jQe)=>{var C9=Oh();function HQe(){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={}}C9(HQe.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 sQ(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(Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/,this._calendar.local.name)}function k9(e,t){return e=\"\"+e,\"000000\".substring(0,t-e.length)+e}C9(sQ.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(Gs.local.invalidDate||Gs.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(Gs.local.differentCalendars||Gs.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?\"-\":\"\")+k9(Math.abs(this.year()),4)+\"-\"+k9(this.month(),2)+\"-\"+k9(this.day(),2)}});function lQ(){this.shortYearCutoff=\"+10\"}C9(lQ.prototype,{_validateLevel:0,newDate:function(e,t,r){return e==null?this.today():(e.year&&(this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),r=e.day(),t=e.month(),e=e.year()),new sQ(this,e,t,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.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,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return(t.year()<0?\"-\":\"\")+k9(Math.abs(t.year()),4)},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear),12},monthOfYear:function(e,t){var r=this._validate(e,t,this.minDay,Gs.local.invalidMonth||Gs.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,Gs.local.invalidMonth||Gs.regionalOptions[\"\"].invalidMonth),r},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return this.leapYear(t)?366:365},dayOfYear:function(e,t,r){var n=this._validate(e,t,r,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(e,t,r){return this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),{}},add:function(e,t,r){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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 Gs=jQe.exports=new HQe;Gs.cdate=sQ;Gs.baseCalendar=lQ;Gs.calendars.gregorian=uQ});var WQe=ye(()=>{var cQ=Oh(),Ud=kv();cQ(Ud.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\"});Ud.local=Ud.regionalOptions[\"\"];cQ(Ud.cdate.prototype,{formatDate:function(e,t){return typeof e!=\"string\"&&(t=e,e=\"\"),this._calendar.formatDate(e||\"\",this,t)}});cQ(Ud.baseCalendar.prototype,{UNIX_EPOCH:Ud.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:24*60*60,TICKS_EPOCH:Ud.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 Ud.local.invalidFormat||Ud.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(S,L){for(var x=1;E+x1},c=function(S,L,x,C){var M=\"\"+L;if(u(S,C))for(;M.length1},k=function(z,O){var V=p(z,O),G=[2,3,V?4:2,V?4:2,10,11,20][\"oyYJ@!\".indexOf(z)+1],Z=new RegExp(\"^-?\\\\d{1,\"+G+\"}\"),H=t.substring(M).match(Z);if(!H)throw(Ud.local.missingNumberAt||Ud.regionalOptions[\"\"].missingNumberAt).replace(/\\{0\\}/,M);return M+=H[0].length,parseInt(H[0],10)},E=this,S=function(){if(typeof s==\"function\"){p(\"m\");var z=s.call(E,t.substring(M));return M+=z.length,z}return k(\"m\")},L=function(z,O,V,G){for(var Z=p(z,G)?V:O,H=0;H-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 XQe=ye(()=>{var Fx=kv(),Etr=Oh(),fQ=Fx.instance();function L9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}L9.prototype=new Fx.baseCalendar;Etr(L9.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(Ctr);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(Ltr);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(Ptr);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 Fx.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 Fx.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,Fx.local.invalidyear),i=Ox[n-Ox[0]],a=i>>9&4095,o=i>>5&15,s=i&31,l;l=fQ.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 Fx.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,Fx.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=Rtr(e,a,r,i);return fQ.toJD(o.year,o.month,o.day)},fromJD:function(e){var t=fQ.fromJD(e),r=Itr(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(ktr),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(L9.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 ktr=/^\\s*(-?\\d\\d\\d\\d|\\d\\d)[-/](\\d?\\d)([iI]?)[-/](\\d?\\d)/m,Ctr=/^\\d?\\d[iI]?/m,Ltr=/^闰?十?[一二三四五六七八九]?月/m,Ptr=/^闰?十?[一二三四五六七八九]?/m;Fx.calendars.chinese=L9;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],Ox=[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 Itr(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=Ox[i.year-Ox[0]],c=i.year<<9|i.month<<5|i.day;a.year=c>=u?i.year:i.year-1,u=Ox[a.year-Ox[0]];var f=u>>9&4095,h=u>>5&15,d=u&31,v,_=new Date(f,h-1,d),b=new Date(i.year,i.month-1,i.day);v=Math.round((b-_)/(24*3600*1e3));var p=zx[a.year-zx[0]],k;for(k=0;k<13;k++){var E=p&1<<12-k?30:29;if(v>13;return!S||k=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 _=0;_>9&4095,E=p>>5&15,S=p&31,L=new Date(k,E-1,S+f);return a.year=L.getFullYear(),a.month=1+L.getMonth(),a.day=L.getDate(),a}});var ZQe=ye(()=>{var xw=kv(),Dtr=Oh();function hQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}hQ.prototype=new xw.baseCalendar;Dtr(hQ.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,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.coptic=hQ});var YQe=ye(()=>{var x1=kv(),Ftr=Oh();function dQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}dQ.prototype=new x1.baseCalendar;Ftr(dQ.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,x1.local.invalidYear),!1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.local.invalidYear),13},daysInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.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,x1.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,x1.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,x1.local.invalidDate);return{century:ztr[Math.floor((n.year()-1)/100)+1]||\"\"}},toJD:function(e,t,r){var n=this._validate(e,t,r,x1.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 ztr={20:\"Fruitbat\",21:\"Anchovy\"};x1.calendars.discworld=dQ});var KQe=ye(()=>{var bw=kv(),Otr=Oh();function vQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}vQ.prototype=new bw.baseCalendar;Otr(vQ.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,bw.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,bw.local.invalidYear||bw.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,bw.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,bw.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)}});bw.calendars.ethiopian=vQ});var JQe=ye(()=>{var qx=kv(),qtr=Oh();function pQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}pQ.prototype=new qx.baseCalendar;qtr(pQ.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,P9(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&&P9(this.daysInYear(e),10)===5?30:t===9&&P9(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 P9(e,t){return e-t*Math.floor(e/t)}qx.calendars.hebrew=pQ});var $Qe=ye(()=>{var dC=kv(),Btr=Oh();function gQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}gQ.prototype=new dC.baseCalendar;Btr(gQ.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,dC.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,dC.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,dC.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)}});dC.calendars.islamic=gQ});var QQe=ye(()=>{var vC=kv(),Ntr=Oh();function mQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}mQ.prototype=new vC.baseCalendar;Ntr(mQ.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,vC.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,vC.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,vC.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)}});vC.calendars.julian=mQ});var tet=ye(()=>{var ug=kv(),Utr=Oh();function _Q(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}_Q.prototype=new ug.baseCalendar;Utr(_Q.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=yQ(e+8+17*20,365);return[Math.floor(t/20)+1,yQ(t,20)]},_toTzolkin:function(e){return e-=this.jdEpoch,[eet(e+20,20),eet(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 yQ(e,t){return e-t*Math.floor(e/t)}function eet(e,t){return yQ(e-1,t)+1}ug.calendars.mayan=_Q});var iet=ye(()=>{var ww=kv(),Vtr=Oh();function xQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}xQ.prototype=new ww.baseCalendar;var ret=ww.instance(\"gregorian\");Vtr(xQ.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,ww.local.invalidYear||ww.regionalOptions[\"\"].invalidYear);return ret.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,ww.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,ww.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)}});ww.calendars.nanakshahi=xQ});var net=ye(()=>{var Tw=kv(),Gtr=Oh();function bQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}bQ.prototype=new Tw.baseCalendar;Gtr(bQ.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,Tw.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,Tw.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,Tw.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=Tw.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=Tw.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 tS=kv(),Htr=Oh();function R9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}function I9(e){var t=e-475;e<0&&t++;var r=.242197,n=r*t,i=r*(t+1),a=n-Math.floor(n),o=i-Math.floor(i);return a>o}R9.prototype=new tS.baseCalendar;Htr(R9.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\",\"Dey\",\"Bahman\",\"Esfand\"],monthNamesShort:[\"Far\",\"Ord\",\"Kho\",\"Tir\",\"Mor\",\"Sha\",\"Meh\",\"Aba\",\"Aza\",\"Dey\",\"Bah\",\"Esf\"],dayNames:[\"Yekshanbeh\",\"Doshanbeh\",\"Seshanbeh\",\"Chah\\u0101rshanbeh\",\"Panjshanbeh\",\"Jom'eh\",\"Shanbeh\"],dayNamesShort:[\"Yek\",\"Do\",\"Se\",\"Cha\",\"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,tS.local.invalidYear);return I9(t.year())},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,tS.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,tS.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=0;if(e>0)for(var a=1;a0?e-1:e)*365+i+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e)+.5;var t=475+(e-this.toJD(475,1,1))/365.242197,r=Math.floor(t);r<=0&&r--,e>this.toJD(r,12,I9(r)?30:29)&&(r++,r===0&&r++);var n=e-this.toJD(r,1,1)+1,i=n<=186?Math.ceil(n/31):Math.ceil((n-6)/30),a=e-this.toJD(r,i,1)+1;return this.newDate(r,i,a)}});tS.calendars.persian=R9;tS.calendars.jalali=R9});var oet=ye(()=>{var Aw=kv(),jtr=Oh(),D9=Aw.instance();function wQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}wQ.prototype=new Aw.baseCalendar;jtr(wQ.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,Aw.local.invalidYear),r=this._t2gYear(t.year());return D9.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 D9.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 D9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=D9.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)}});Aw.calendars.taiwan=wQ});var set=ye(()=>{var Sw=kv(),Wtr=Oh(),F9=Sw.instance();function TQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}TQ.prototype=new Sw.baseCalendar;Wtr(TQ.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,Sw.local.invalidYear),r=this._t2gYear(t.year());return F9.leapYear(r)},weekOfYear:function(i,t,r){var n=this._validate(i,this.minMonth,this.minDay,Sw.local.invalidYear),i=this._t2gYear(n.year());return F9.weekOfYear(i,n.month(),n.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,Sw.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,Sw.local.invalidDate),i=this._t2gYear(n.year());return F9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=F9.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)}});Sw.calendars.thai=TQ});var uet=ye(()=>{var Mw=kv(),Xtr=Oh();function AQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}AQ.prototype=new Mw.baseCalendar;Xtr(AQ.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,Mw.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,Mw.local.invalidMonth),n=r.toJD()-24e5+.5,i=0,a=0;an)return Bx[i]-Bx[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,Mw.local.invalidDate),i=12*(n.year()-1)+n.month()-15292,a=n.day()+Bx[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-Bx[r-1]+1;return this.newDate(o,s,l)},isValid:function(e,t,r){var n=Mw.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=Mw.baseCalendar.prototype._validate.apply(this,arguments);if(i.year<1276||i.year>1500)throw n.replace(/\\{0\\}/,this.local.name);return i}});Mw.calendars.ummalqura=AQ;var Bx=[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 fet=ye((rTr,cet)=>{\"use strict\";cet.exports=kv();WQe();XQe();ZQe();YQe();KQe();JQe();$Qe();QQe();tet();iet();net();aet();oet();set();uet()});var yet=ye((iTr,met)=>{\"use strict\";var det=fet(),pC=Dr(),vet=fs(),Ztr=vet.EPOCHJD,Ytr=vet.ONEDAY,EQ={valType:\"enumerated\",values:pC.sortObjectKeys(det.calendars),editType:\"calc\",dflt:\"gregorian\"},pet=function(e,t,r,n){var i={};return i[r]=EQ,pC.coerce(e,t,i,r,n)},Ktr=function(e,t,r,n){for(var i=0;i{\"use strict\";_et.exports=yet()});var rrr=ye((aTr,wet)=>{var bet=rye();bet.register([a1e(),W1e(),oxe(),Exe(),Uxe(),Obe(),Kbe(),O2e(),hwe(),Zwe(),F3e(),XEe(),zke(),E6e(),pLe(),WLe(),gPe(),UIe(),o8e(),A8e(),z8e(),K8e(),fRe(),ERe(),tFe(),bFe(),qBe(),qNe(),ZUe(),xVe(),LGe(),jGe(),pHe(),Eje(),Vje(),hWe(),bXe(),jXe(),MZe(),ZYe(),yKe(),BKe(),fJe(),SJe(),A$e(),G$e(),lQe(),GQe(),xet()]);wet.exports=bet});return rrr();})();\n", + "`),We=Xe.createShader(Xe.FRAGMENT_SHADER);if(Xe.isContextLost())return void(this.failedToCreate=!0);if(Xe.shaderSource(We,Be),Xe.compileShader(We),!Xe.getShaderParameter(We,Xe.COMPILE_STATUS))throw new Error(`Could not compile fragment shader: ${Xe.getShaderInfoLog(We)}`);Xe.attachShader(this.program,We);let it=Xe.createShader(Xe.VERTEX_SHADER);if(Xe.isContextLost())return void(this.failedToCreate=!0);if(Xe.shaderSource(it,et),Xe.compileShader(it),!Xe.getShaderParameter(it,Xe.COMPILE_STATUS))throw new Error(`Could not compile vertex shader: ${Xe.getShaderInfoLog(it)}`);Xe.attachShader(this.program,it),this.attributes={};let Ft={};this.numAttributes=Yt.length;for(let Ht=0;Ht({u_depth:new a.aH(Ht,tr.u_depth),u_terrain:new a.aH(Ht,tr.u_terrain),u_terrain_dim:new a.aI(Ht,tr.u_terrain_dim),u_terrain_matrix:new a.aJ(Ht,tr.u_terrain_matrix),u_terrain_unpack:new a.aK(Ht,tr.u_terrain_unpack),u_terrain_exaggeration:new a.aI(Ht,tr.u_terrain_exaggeration)}))(w,Ft),this.binderUniforms=Q?Q.getUniforms(w,Ft):[]}draw(w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve,be,De,Be,et){let We=w.gl;if(this.failedToCreate)return;if(w.program.set(this.program),w.setDepthMode(Q),w.setStencilMode(ee),w.setColorMode(le),w.setCullFace(qe),ot){w.activeTexture.set(We.TEXTURE2),We.bindTexture(We.TEXTURE_2D,ot.depthTexture),w.activeTexture.set(We.TEXTURE3),We.bindTexture(We.TEXTURE_2D,ot.texture);for(let Ft in this.terrainUniforms)this.terrainUniforms[Ft].set(ot[Ft])}for(let Ft in this.fixedUniforms)this.fixedUniforms[Ft].set(Xe[Ft]);be&&be.setUniforms(w,this.binderUniforms,Ir,{zoom:ve});let it=0;switch(B){case We.LINES:it=2;break;case We.TRIANGLES:it=3;break;case We.LINE_STRIP:it=1}for(let Ft of xr.get()){let Ht=Ft.vaos||(Ft.vaos={});(Ht[Tt]||(Ht[Tt]=new kr)).bind(w,this,Yt,be?be.getPaintVertexBuffers():[],Kt,Ft.vertexOffset,De,Be,et),We.drawElements(B,Ft.primitiveLength*it,We.UNSIGNED_SHORT,Ft.primitiveOffset*it*2)}}}function An(ue,w,B){let Q=1/In(B,1,w.transform.tileZoom),ee=Math.pow(2,B.tileID.overscaledZ),le=B.tileSize*Math.pow(2,w.transform.tileZoom)/ee,qe=le*(B.tileID.canonical.x+B.tileID.wrap*ee),Xe=le*B.tileID.canonical.y;return{u_image:0,u_texsize:B.imageAtlasTexture.size,u_scale:[Q,ue.fromScale,ue.toScale],u_fade:ue.t,u_pixel_coord_upper:[qe>>16,Xe>>16],u_pixel_coord_lower:[65535&qe,65535&Xe]}}let Mn=(ue,w,B,Q)=>{let ee=w.style.light,le=ee.properties.get(\"position\"),qe=[le.x,le.y,le.z],Xe=function(){var Tt=new a.A(9);return a.A!=Float32Array&&(Tt[1]=0,Tt[2]=0,Tt[3]=0,Tt[5]=0,Tt[6]=0,Tt[7]=0),Tt[0]=1,Tt[4]=1,Tt[8]=1,Tt}();ee.properties.get(\"anchor\")===\"viewport\"&&function(Tt,Yt){var Kt=Math.sin(Yt),xr=Math.cos(Yt);Tt[0]=xr,Tt[1]=Kt,Tt[2]=0,Tt[3]=-Kt,Tt[4]=xr,Tt[5]=0,Tt[6]=0,Tt[7]=0,Tt[8]=1}(Xe,-w.transform.angle),function(Tt,Yt,Kt){var xr=Yt[0],Ir=Yt[1],ve=Yt[2];Tt[0]=xr*Kt[0]+Ir*Kt[3]+ve*Kt[6],Tt[1]=xr*Kt[1]+Ir*Kt[4]+ve*Kt[7],Tt[2]=xr*Kt[2]+Ir*Kt[5]+ve*Kt[8]}(qe,qe,Xe);let ot=ee.properties.get(\"color\");return{u_matrix:ue,u_lightpos:qe,u_lightintensity:ee.properties.get(\"intensity\"),u_lightcolor:[ot.r,ot.g,ot.b],u_vertical_gradient:+B,u_opacity:Q}},Li=(ue,w,B,Q,ee,le,qe)=>a.e(Mn(ue,w,B,Q),An(le,w,qe),{u_height_factor:-Math.pow(2,ee.overscaledZ)/qe.tileSize/8}),_n=ue=>({u_matrix:ue}),ya=(ue,w,B,Q)=>a.e(_n(ue),An(B,w,Q)),Jn=(ue,w)=>({u_matrix:ue,u_world:w}),Ma=(ue,w,B,Q,ee)=>a.e(ya(ue,w,B,Q),{u_world:ee}),_o=(ue,w,B,Q)=>{let ee=ue.transform,le,qe;if(Q.paint.get(\"circle-pitch-alignment\")===\"map\"){let Xe=In(B,1,ee.zoom);le=!0,qe=[Xe,Xe]}else le=!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:ue.translatePosMatrix(w.posMatrix,B,Q.paint.get(\"circle-translate\"),Q.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+le,u_device_pixel_ratio:ue.pixelRatio,u_extrude_scale:qe}},No=(ue,w,B)=>({u_matrix:ue,u_inv_matrix:w,u_camera_to_center_distance:B.cameraToCenterDistance,u_viewport_size:[B.width,B.height]}),po=(ue,w,B=1)=>({u_matrix:ue,u_color:w,u_overlay:0,u_overlay_scale:B}),Lo=ue=>({u_matrix:ue}),ko=(ue,w,B,Q)=>({u_matrix:ue,u_extrude_scale:In(w,1,B),u_intensity:Q}),Ds=(ue,w,B,Q)=>{let ee=a.H();a.aP(ee,0,ue.width,ue.height,0,0,1);let le=ue.context.gl;return{u_matrix:ee,u_world:[le.drawingBufferWidth,le.drawingBufferHeight],u_image:B,u_color_ramp:Q,u_opacity:w.paint.get(\"heatmap-opacity\")}};function Fs(ue,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 ll=(ue,w,B,Q)=>{let ee=ue.transform;return{u_matrix:As(ue,w,B,Q),u_ratio:1/In(w,1,ee.zoom),u_device_pixel_ratio:ue.pixelRatio,u_units_to_pixels:[1/ee.pixelsToGLUnits[0],1/ee.pixelsToGLUnits[1]]}},ul=(ue,w,B,Q,ee)=>a.e(ll(ue,w,B,ee),{u_image:0,u_image_height:Q}),zl=(ue,w,B,Q,ee)=>{let le=ue.transform,qe=il(w,le);return{u_matrix:As(ue,w,B,ee),u_texsize:w.imageAtlasTexture.size,u_ratio:1/In(w,1,le.zoom),u_device_pixel_ratio:ue.pixelRatio,u_image:0,u_scale:[qe,Q.fromScale,Q.toScale],u_fade:Q.t,u_units_to_pixels:[1/le.pixelsToGLUnits[0],1/le.pixelsToGLUnits[1]]}},us=(ue,w,B,Q,ee,le)=>{let qe=ue.lineAtlas,Xe=il(w,ue.transform),ot=B.layout.get(\"line-cap\")===\"round\",Tt=qe.getDash(Q.from,ot),Yt=qe.getDash(Q.to,ot),Kt=Tt.width*ee.fromScale,xr=Yt.width*ee.toScale;return a.e(ll(ue,w,B,le),{u_patternscale_a:[Xe/Kt,-Tt.height/2],u_patternscale_b:[Xe/xr,-Yt.height/2],u_sdfgamma:qe.width/(256*Math.min(Kt,xr)*ue.pixelRatio)/2,u_image:0,u_tex_y_a:Tt.y,u_tex_y_b:Yt.y,u_mix:ee.t})};function il(ue,w){return 1/In(ue,1,w.tileZoom)}function As(ue,w,B,Q){return ue.translatePosMatrix(Q?Q.posMatrix:w.tileID.posMatrix,w,B.paint.get(\"line-translate\"),B.paint.get(\"line-translate-anchor\"))}let cl=(ue,w,B,Q,ee)=>{return{u_matrix:ue,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:(le=ee.paint.get(\"raster-contrast\"),le>0?1/(1-le):1+le),u_spin_weights:Ks(ee.paint.get(\"raster-hue-rotate\"))};var le,qe};function Ks(ue){ue*=Math.PI/180;let w=Math.sin(ue),B=Math.cos(ue);return[(2*B+1)/3,(-Math.sqrt(3)*w-B+1)/3,(Math.sqrt(3)*w-B+1)/3]}let zs=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>{let ve=qe.transform;return{u_is_size_zoom_constant:+(ue===\"constant\"||ue===\"source\"),u_is_size_feature_constant:+(ue===\"constant\"||ue===\"camera\"),u_size_t:w?w.uSizeT:0,u_size:w?w.uSize:0,u_camera_to_center_distance:ve.cameraToCenterDistance,u_pitch:ve.pitch/360*2*Math.PI,u_rotate_symbol:+B,u_aspect_ratio:ve.width/ve.height,u_fade_change:qe.options.fadeDuration?qe.symbolFadeChange:1,u_matrix:Xe,u_label_plane_matrix:ot,u_coord_matrix:Tt,u_is_text:+Kt,u_pitch_with_map:+Q,u_is_along_line:ee,u_is_variable_anchor:le,u_texsize:xr,u_texture:0,u_translation:Yt,u_pitched_scale:Ir}},Io=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve)=>{let be=qe.transform;return a.e(zs(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,ve),{u_gamma_scale:Q?Math.cos(be._pitch)*be.cameraToCenterDistance:1,u_device_pixel_ratio:qe.pixelRatio,u_is_halo:+Ir})},ls=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>a.e(Io(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,!0,Kt,!0,Ir),{u_texsize_icon:xr,u_texture_icon:1}),Zl=(ue,w,B)=>({u_matrix:ue,u_opacity:w,u_color:B}),Su=(ue,w,B,Q,ee,le)=>a.e(function(qe,Xe,ot,Tt){let Yt=ot.imageManager.getPattern(qe.from.toString()),Kt=ot.imageManager.getPattern(qe.to.toString()),{width:xr,height:Ir}=ot.imageManager.getPixelSize(),ve=Math.pow(2,Tt.tileID.overscaledZ),be=Tt.tileSize*Math.pow(2,ot.transform.tileZoom)/ve,De=be*(Tt.tileID.canonical.x+Tt.tileID.wrap*ve),Be=be*Tt.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Yt.tl,u_pattern_br_a:Yt.br,u_pattern_tl_b:Kt.tl,u_pattern_br_b:Kt.br,u_texsize:[xr,Ir],u_mix:Xe.t,u_pattern_size_a:Yt.displaySize,u_pattern_size_b:Kt.displaySize,u_scale_a:Xe.fromScale,u_scale_b:Xe.toScale,u_tile_units_to_pixels:1/In(Tt,1,ot.transform.tileZoom),u_pixel_coord_upper:[De>>16,Be>>16],u_pixel_coord_lower:[65535&De,65535&Be]}}(Q,le,B,ee),{u_matrix:ue,u_opacity:w}),nc={fillExtrusion:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_opacity:new a.aI(ue,w.u_opacity)}),fillExtrusionPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_height_factor:new a.aI(ue,w.u_height_factor),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade),u_opacity:new a.aI(ue,w.u_opacity)}),fill:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),fillPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),fillOutline:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world)}),fillOutlinePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),circle:(ue,w)=>({u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_scale_with_map:new a.aH(ue,w.u_scale_with_map),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_extrude_scale:new a.aO(ue,w.u_extrude_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_matrix:new a.aJ(ue,w.u_matrix)}),collisionBox:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_pixel_extrude_scale:new a.aO(ue,w.u_pixel_extrude_scale)}),collisionCircle:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_inv_matrix:new a.aJ(ue,w.u_inv_matrix),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_viewport_size:new a.aO(ue,w.u_viewport_size)}),debug:(ue,w)=>({u_color:new a.aL(ue,w.u_color),u_matrix:new a.aJ(ue,w.u_matrix),u_overlay:new a.aH(ue,w.u_overlay),u_overlay_scale:new a.aI(ue,w.u_overlay_scale)}),clippingMask:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),heatmap:(ue,w)=>({u_extrude_scale:new a.aI(ue,w.u_extrude_scale),u_intensity:new a.aI(ue,w.u_intensity),u_matrix:new a.aJ(ue,w.u_matrix)}),heatmapTexture:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_color_ramp:new a.aH(ue,w.u_color_ramp),u_opacity:new a.aI(ue,w.u_opacity)}),hillshade:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_latrange:new a.aO(ue,w.u_latrange),u_light:new a.aO(ue,w.u_light),u_shadow:new a.aL(ue,w.u_shadow),u_highlight:new a.aL(ue,w.u_highlight),u_accent:new a.aL(ue,w.u_accent)}),hillshadePrepare:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_dimension:new a.aO(ue,w.u_dimension),u_zoom:new a.aI(ue,w.u_zoom),u_unpack:new a.aK(ue,w.u_unpack)}),line:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels)}),lineGradient:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_image:new a.aH(ue,w.u_image),u_image_height:new a.aI(ue,w.u_image_height)}),linePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texsize:new a.aO(ue,w.u_texsize),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_image:new a.aH(ue,w.u_image),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),lineSDF:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_patternscale_a:new a.aO(ue,w.u_patternscale_a),u_patternscale_b:new a.aO(ue,w.u_patternscale_b),u_sdfgamma:new a.aI(ue,w.u_sdfgamma),u_image:new a.aH(ue,w.u_image),u_tex_y_a:new a.aI(ue,w.u_tex_y_a),u_tex_y_b:new a.aI(ue,w.u_tex_y_b),u_mix:new a.aI(ue,w.u_mix)}),raster:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_tl_parent:new a.aO(ue,w.u_tl_parent),u_scale_parent:new a.aI(ue,w.u_scale_parent),u_buffer_scale:new a.aI(ue,w.u_buffer_scale),u_fade_t:new a.aI(ue,w.u_fade_t),u_opacity:new a.aI(ue,w.u_opacity),u_image0:new a.aH(ue,w.u_image0),u_image1:new a.aH(ue,w.u_image1),u_brightness_low:new a.aI(ue,w.u_brightness_low),u_brightness_high:new a.aI(ue,w.u_brightness_high),u_saturation_factor:new a.aI(ue,w.u_saturation_factor),u_contrast_factor:new a.aI(ue,w.u_contrast_factor),u_spin_weights:new a.aN(ue,w.u_spin_weights)}),symbolIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolSDF:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolTextAndIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texsize_icon:new a.aO(ue,w.u_texsize_icon),u_texture:new a.aH(ue,w.u_texture),u_texture_icon:new a.aH(ue,w.u_texture_icon),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),background:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_color:new a.aL(ue,w.u_color)}),backgroundPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_image:new a.aH(ue,w.u_image),u_pattern_tl_a:new a.aO(ue,w.u_pattern_tl_a),u_pattern_br_a:new a.aO(ue,w.u_pattern_br_a),u_pattern_tl_b:new a.aO(ue,w.u_pattern_tl_b),u_pattern_br_b:new a.aO(ue,w.u_pattern_br_b),u_texsize:new a.aO(ue,w.u_texsize),u_mix:new a.aI(ue,w.u_mix),u_pattern_size_a:new a.aO(ue,w.u_pattern_size_a),u_pattern_size_b:new a.aO(ue,w.u_pattern_size_b),u_scale_a:new a.aI(ue,w.u_scale_a),u_scale_b:new a.aI(ue,w.u_scale_b),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_tile_units_to_pixels:new a.aI(ue,w.u_tile_units_to_pixels)}),terrain:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_ele_delta:new a.aI(ue,w.u_ele_delta),u_fog_matrix:new a.aJ(ue,w.u_fog_matrix),u_fog_color:new a.aL(ue,w.u_fog_color),u_fog_ground_blend:new a.aI(ue,w.u_fog_ground_blend),u_fog_ground_blend_opacity:new a.aI(ue,w.u_fog_ground_blend_opacity),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon_fog_blend:new a.aI(ue,w.u_horizon_fog_blend)}),terrainDepth:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),terrainCoords:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_terrain_coords_id:new a.aI(ue,w.u_terrain_coords_id),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),sky:(ue,w)=>({u_sky_color:new a.aL(ue,w.u_sky_color),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon:new a.aI(ue,w.u_horizon),u_sky_horizon_blend:new a.aI(ue,w.u_sky_horizon_blend)})};class bs{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 Rn={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class _a{constructor(w,B,Q,ee){this.length=B.length,this.attributes=Q,this.itemSize=B.bytesPerElement,this.dynamicDraw=ee,this.context=w;let le=w.gl;this.buffer=le.createBuffer(),w.bindVertexBuffer.set(this.buffer),le.bufferData(le.ARRAY_BUFFER,B.arrayBuffer,this.dynamicDraw?le.DYNAMIC_DRAW:le.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 Ht=a.H();a.aQ(Ht,We.placementInvProjMatrix,ue.transform.glCoordMatrix),a.aQ(Ht,Ht,We.placementViewportMatrix),ot.push({circleArray:Ft,circleOffset:Yt,transform:et.posMatrix,invTransform:Ht,coord:et}),Tt+=Ft.length/4,Yt=Tt}it&&Xe.draw(le,qe.LINES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,{u_matrix:et.posMatrix,u_pixel_extrude_scale:[1/(Kt=ue.transform).width,1/Kt.height]},ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et),B.id,it.layoutVertexBuffer,it.indexBuffer,it.segments,null,ue.transform.zoom,null,null,it.collisionVertexBuffer)}var Kt;if(!ee||!ot.length)return;let xr=ue.useProgram(\"collisionCircle\"),Ir=new a.aR;Ir.resize(4*Tt),Ir._trim();let ve=0;for(let Be of ot)for(let et=0;et=0&&(Be[We.associatedIconIndex]={shiftedAnchor:Kn,angle:Ta})}else pi(We.numGlyphs,be)}if(Tt){De.clear();let et=ue.icon.placedSymbolArray;for(let We=0;Weue.style.map.terrain.getElevation(Wr,nt,jt):null,kt=B.layout.get(\"text-rotation-alignment\")===\"map\";je(Pi,Wr.posMatrix,ue,ee,Ul,au,Be,Tt,kt,be,Wr.toUnwrapped(),ve.width,ve.height,Js,Ye)}let Tl=Wr.posMatrix,Al=ee&&dr||dc,X=et||Al?bl:Ul,se=Lu,Te=Cn&&B.paint.get(ee?\"text-halo-width\":\"icon-halo-width\").constantOr(1)!==0,Ne;Ne=Cn?Pi.iconsInText?ls(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,Qa,Ts,Or):Io(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,!0,Or):zs(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,Or);let He={program:fa,buffers:cn,uniformValues:Ne,atlasTexture:mo,atlasTextureIcon:wo,atlasInterpolation:Bo,atlasInterpolationIcon:Ps,isSDF:Cn,hasHalo:Te};if(Ft&&Pi.canOverlap){Ht=!0;let Ye=cn.segments.get();for(let kt of Ye)Sr.push({segments:new a.a0([kt]),sortKey:kt.sortKey,state:He,terrainData:Co})}else Sr.push({segments:cn.segments,sortKey:0,state:He,terrainData:Co})}Ht&&Sr.sort((Wr,ni)=>Wr.sortKey-ni.sortKey);for(let Wr of Sr){let ni=Wr.state;if(xr.activeTexture.set(Ir.TEXTURE0),ni.atlasTexture.bind(ni.atlasInterpolation,Ir.CLAMP_TO_EDGE),ni.atlasTextureIcon&&(xr.activeTexture.set(Ir.TEXTURE1),ni.atlasTextureIcon&&ni.atlasTextureIcon.bind(ni.atlasInterpolationIcon,Ir.CLAMP_TO_EDGE)),ni.isSDF){let Pi=ni.uniformValues;ni.hasHalo&&(Pi.u_is_halo=1,Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,Pi,Wr.terrainData)),Pi.u_is_halo=0}Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,ni.uniformValues,Wr.terrainData)}}function Qf(ue,w,B,Q,ee,le,qe,Xe,ot,Tt){let Yt=Q.context;ee.draw(Yt,Yt.gl.TRIANGLES,le,qe,Xe,Pa.disabled,ot,Tt,B.id,ue.layoutVertexBuffer,ue.indexBuffer,w,B.paint,Q.transform.zoom,ue.programConfigurations.get(B.id),ue.dynamicLayoutVertexBuffer,ue.opacityVertexBuffer)}function _f(ue,w,B,Q){let ee=ue.context,le=ee.gl,qe=Yo.disabled,Xe=new qs([le.ONE,le.ONE],a.aM.transparent,[!0,!0,!0,!0]),ot=w.getBucket(B);if(!ot)return;let Tt=Q.key,Yt=B.heatmapFbos.get(Tt);Yt||(Yt=eh(ee,w.tileSize,w.tileSize),B.heatmapFbos.set(Tt,Yt)),ee.bindFramebuffer.set(Yt.framebuffer),ee.viewport.set([0,0,w.tileSize,w.tileSize]),ee.clear({color:a.aM.transparent});let Kt=ot.programConfigurations.get(B.id),xr=ue.useProgram(\"heatmap\",Kt),Ir=ue.style.map.terrain.getTerrainData(Q);xr.draw(ee,le.TRIANGLES,Po.disabled,qe,Xe,Pa.disabled,ko(Q.posMatrix,w,ue.transform.zoom,B.paint.get(\"heatmap-intensity\")),Ir,B.id,ot.layoutVertexBuffer,ot.indexBuffer,ot.segments,B.paint,ue.transform.zoom,Kt)}function Yc(ue,w,B){let Q=ue.context,ee=Q.gl;Q.setColorMode(ue.colorModeForRenderPass());let le=th(Q,w),qe=B.key,Xe=w.heatmapFbos.get(qe);Xe&&(Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Xe.colorAttachment.get()),Q.activeTexture.set(ee.TEXTURE1),le.bind(ee.LINEAR,ee.CLAMP_TO_EDGE),ue.useProgram(\"heatmapTexture\").draw(Q,ee.TRIANGLES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,Ds(ue,w,0,1),null,w.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments,w.paint,ue.transform.zoom),Xe.destroy(),w.heatmapFbos.delete(qe))}function eh(ue,w,B){var Q,ee;let le=ue.gl,qe=le.createTexture();le.bindTexture(le.TEXTURE_2D,qe),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_S,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_T,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MIN_FILTER,le.LINEAR),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MAG_FILTER,le.LINEAR);let Xe=(Q=ue.HALF_FLOAT)!==null&&Q!==void 0?Q:le.UNSIGNED_BYTE,ot=(ee=ue.RGBA16F)!==null&&ee!==void 0?ee:le.RGBA;le.texImage2D(le.TEXTURE_2D,0,ot,w,B,0,le.RGBA,Xe,null);let Tt=ue.createFramebuffer(w,B,!1,!1);return Tt.colorAttachment.set(qe),Tt}function th(ue,w){return w.colorRampTexture||(w.colorRampTexture=new g(ue,w.colorRamp,ue.gl.RGBA)),w.colorRampTexture}function ju(ue,w,B,Q,ee){if(!B||!Q||!Q.imageAtlas)return;let le=Q.imageAtlas.patternPositions,qe=le[B.to.toString()],Xe=le[B.from.toString()];if(!qe&&Xe&&(qe=Xe),!Xe&&qe&&(Xe=qe),!qe||!Xe){let ot=ee.getPaintProperty(w);qe=le[ot],Xe=le[ot]}qe&&Xe&&ue.setConstantPatternPositions(qe,Xe)}function Hf(ue,w,B,Q,ee,le,qe){let Xe=ue.context.gl,ot=\"fill-pattern\",Tt=B.paint.get(ot),Yt=Tt&&Tt.constantOr(1),Kt=B.getCrossfadeParameters(),xr,Ir,ve,be,De;qe?(Ir=Yt&&!B.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",xr=Xe.LINES):(Ir=Yt?\"fillPattern\":\"fill\",xr=Xe.TRIANGLES);let Be=Tt.constantOr(null);for(let et of Q){let We=w.getTile(et);if(Yt&&!We.patternsLoaded())continue;let it=We.getBucket(B);if(!it)continue;let Ft=it.programConfigurations.get(B.id),Ht=ue.useProgram(Ir,Ft),tr=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et);Yt&&(ue.context.activeTexture.set(Xe.TEXTURE0),We.imageAtlasTexture.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),Ft.updatePaintBuffers(Kt)),ju(Ft,ot,Be,We,B);let dr=tr?et:null,Sr=ue.translatePosMatrix(dr?dr.posMatrix:et.posMatrix,We,B.paint.get(\"fill-translate\"),B.paint.get(\"fill-translate-anchor\"));if(qe){be=it.indexBuffer2,De=it.segments2;let Or=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];ve=Ir===\"fillOutlinePattern\"&&Yt?Ma(Sr,ue,Kt,We,Or):Jn(Sr,Or)}else be=it.indexBuffer,De=it.segments,ve=Yt?ya(Sr,ue,Kt,We):_n(Sr);Ht.draw(ue.context,xr,ee,ue.stencilModeForClipping(et),le,Pa.disabled,ve,tr,B.id,it.layoutVertexBuffer,be,De,B.paint,ue.transform.zoom,Ft)}}function cc(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=\"fill-extrusion-pattern\",Yt=B.paint.get(Tt),Kt=Yt.constantOr(1),xr=B.getCrossfadeParameters(),Ir=B.paint.get(\"fill-extrusion-opacity\"),ve=Yt.constantOr(null);for(let be of Q){let De=w.getTile(be),Be=De.getBucket(B);if(!Be)continue;let et=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(be),We=Be.programConfigurations.get(B.id),it=ue.useProgram(Kt?\"fillExtrusionPattern\":\"fillExtrusion\",We);Kt&&(ue.context.activeTexture.set(ot.TEXTURE0),De.imageAtlasTexture.bind(ot.LINEAR,ot.CLAMP_TO_EDGE),We.updatePaintBuffers(xr)),ju(We,Tt,ve,De,B);let Ft=ue.translatePosMatrix(be.posMatrix,De,B.paint.get(\"fill-extrusion-translate\"),B.paint.get(\"fill-extrusion-translate-anchor\")),Ht=B.paint.get(\"fill-extrusion-vertical-gradient\"),tr=Kt?Li(Ft,ue,Ht,Ir,be,xr,De):Mn(Ft,ue,Ht,Ir);it.draw(Xe,Xe.gl.TRIANGLES,ee,le,qe,Pa.backCCW,tr,et,B.id,Be.layoutVertexBuffer,Be.indexBuffer,Be.segments,B.paint,ue.transform.zoom,We,ue.style.map.terrain&&Be.centroidVertexBuffer)}}function of(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=B.fbo;if(!Tt)return;let Yt=ue.useProgram(\"hillshade\"),Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(w);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,Tt.colorAttachment.get()),Yt.draw(Xe,ot.TRIANGLES,ee,le,qe,Pa.disabled,((xr,Ir,ve,be)=>{let De=ve.paint.get(\"hillshade-shadow-color\"),Be=ve.paint.get(\"hillshade-highlight-color\"),et=ve.paint.get(\"hillshade-accent-color\"),We=ve.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);ve.paint.get(\"hillshade-illumination-anchor\")===\"viewport\"&&(We-=xr.transform.angle);let it=!xr.options.moving;return{u_matrix:be?be.posMatrix:xr.transform.calculatePosMatrix(Ir.tileID.toUnwrapped(),it),u_image:0,u_latrange:Fs(0,Ir.tileID),u_light:[ve.paint.get(\"hillshade-exaggeration\"),We],u_shadow:De,u_highlight:Be,u_accent:et}})(ue,B,Q,Kt?w:null),Kt,Q.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments)}function Nl(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl,ot=w.dem;if(ot&&ot.data){let Tt=ot.dim,Yt=ot.stride,Kt=ot.getPixels();if(qe.activeTexture.set(Xe.TEXTURE1),qe.pixelStoreUnpackPremultiplyAlpha.set(!1),w.demTexture=w.demTexture||ue.getTileTexture(Yt),w.demTexture){let Ir=w.demTexture;Ir.update(Kt,{premultiply:!1}),Ir.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE)}else w.demTexture=new g(qe,Kt,Xe.RGBA,{premultiply:!1}),w.demTexture.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE);qe.activeTexture.set(Xe.TEXTURE0);let xr=w.fbo;if(!xr){let Ir=new g(qe,{width:Tt,height:Tt,data:null},Xe.RGBA);Ir.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),xr=w.fbo=qe.createFramebuffer(Tt,Tt,!0,!1),xr.colorAttachment.set(Ir.texture)}qe.bindFramebuffer.set(xr.framebuffer),qe.viewport.set([0,0,Tt,Tt]),ue.useProgram(\"hillshadePrepare\").draw(qe,Xe.TRIANGLES,Q,ee,le,Pa.disabled,((Ir,ve)=>{let be=ve.stride,De=a.H();return a.aP(De,0,a.X,-a.X,0,0,1),a.J(De,De,[0,-a.X,0]),{u_matrix:De,u_image:1,u_dimension:[be,be],u_zoom:Ir.overscaledZ,u_unpack:ve.getUnpackVector()}})(w.tileID,ot),null,B.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments),w.needsHillshadePrepare=!1}}function Kc(ue,w,B,Q,ee,le){let qe=Q.paint.get(\"raster-fade-duration\");if(!le&&qe>0){let Xe=u.now(),ot=(Xe-ue.timeAdded)/qe,Tt=w?(Xe-w.timeAdded)/qe:-1,Yt=B.getSource(),Kt=ee.coveringZoomLevel({tileSize:Yt.tileSize,roundZoom:Yt.roundZoom}),xr=!w||Math.abs(w.tileID.overscaledZ-Kt)>Math.abs(ue.tileID.overscaledZ-Kt),Ir=xr&&ue.refreshedUponExpiration?1:a.ac(xr?ot:1-Tt,0,1);return ue.refreshedUponExpiration&&ot>=1&&(ue.refreshedUponExpiration=!1),w?{opacity:1,mix:1-Ir}:{opacity:Ir,mix:0}}return{opacity:1,mix:0}}let Rc=new a.aM(1,0,0,1),gs=new a.aM(0,1,0,1),jf=new a.aM(0,0,1,1),Gh=new a.aM(1,0,1,1),rh=new a.aM(0,1,1,1);function sf(ue,w,B,Q){Mu(ue,0,w+B/2,ue.transform.width,B,Q)}function Th(ue,w,B,Q){Mu(ue,w-B/2,0,B,ue.transform.height,Q)}function Mu(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl;Xe.enable(Xe.SCISSOR_TEST),Xe.scissor(w*ue.pixelRatio,B*ue.pixelRatio,Q*ue.pixelRatio,ee*ue.pixelRatio),qe.clear({color:le}),Xe.disable(Xe.SCISSOR_TEST)}function ih(ue,w,B){let Q=ue.context,ee=Q.gl,le=B.posMatrix,qe=ue.useProgram(\"debug\"),Xe=Po.disabled,ot=Yo.disabled,Tt=ue.colorModeForRenderPass(),Yt=\"$debug\",Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(B);Q.activeTexture.set(ee.TEXTURE0);let xr=w.getTileByID(B.key).latestRawTileData,Ir=Math.floor((xr&&xr.byteLength||0)/1024),ve=w.getTile(B).tileSize,be=512/Math.min(ve,512)*(B.overscaledZ/ue.transform.zoom)*.5,De=B.canonical.toString();B.overscaledZ!==B.canonical.z&&(De+=` => ${B.overscaledZ}`),function(Be,et){Be.initDebugOverlayCanvas();let We=Be.debugOverlayCanvas,it=Be.context.gl,Ft=Be.debugOverlayCanvas.getContext(\"2d\");Ft.clearRect(0,0,We.width,We.height),Ft.shadowColor=\"white\",Ft.shadowBlur=2,Ft.lineWidth=1.5,Ft.strokeStyle=\"white\",Ft.textBaseline=\"top\",Ft.font=\"bold 36px Open Sans, sans-serif\",Ft.fillText(et,5,5),Ft.strokeText(et,5,5),Be.debugOverlayTexture.update(We),Be.debugOverlayTexture.bind(it.LINEAR,it.CLAMP_TO_EDGE)}(ue,`${De} ${Ir}kB`),qe.draw(Q,ee.TRIANGLES,Xe,ot,qs.alphaBlended,Pa.disabled,po(le,a.aM.transparent,be),null,Yt,ue.debugBuffer,ue.quadTriangleIndexBuffer,ue.debugSegments),qe.draw(Q,ee.LINE_STRIP,Xe,ot,Tt,Pa.disabled,po(le,a.aM.red),Kt,Yt,ue.debugBuffer,ue.tileBorderIndexBuffer,ue.debugSegments)}function js(ue,w,B){let Q=ue.context,ee=Q.gl,le=ue.colorModeForRenderPass(),qe=new Po(ee.LEQUAL,Po.ReadWrite,ue.depthRangeFor3D),Xe=ue.useProgram(\"terrain\"),ot=w.getTerrainMesh();Q.bindFramebuffer.set(null),Q.viewport.set([0,0,ue.width,ue.height]);for(let Tt of B){let Yt=ue.renderToTexture.getTexture(Tt),Kt=w.getTerrainData(Tt.tileID);Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Yt.texture);let xr=ue.transform.calculatePosMatrix(Tt.tileID.toUnwrapped()),Ir=w.getMeshFrameDelta(ue.transform.zoom),ve=ue.transform.calculateFogMatrix(Tt.tileID.toUnwrapped()),be=Jr(xr,Ir,ve,ue.style.sky,ue.transform.pitch);Xe.draw(Q,ee.TRIANGLES,qe,Yo.disabled,le,Pa.backCCW,be,Kt,\"terrain\",ot.vertexBuffer,ot.indexBuffer,ot.segments)}}class Eu{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 Dc{constructor(w,B){this.context=new ad(w),this.transform=B,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:a.an(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=mt.maxUnderzooming+mt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Wo}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,vo.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,vo.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,lt.members),this.rasterBoundsSegments=a.a0.simpleSegment(0,0,4,2);let le=new a.aX;le.emplaceBack(0,0),le.emplaceBack(1,0),le.emplaceBack(0,1),le.emplaceBack(1,1),this.viewportBuffer=w.createVertexBuffer(le,vo.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 Xe=new a.aY;Xe.emplaceBack(0,1,2),Xe.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=w.createIndexBuffer(Xe);let ot=this.context.gl;this.stencilClearMode=new Yo({func:ot.ALWAYS,mask:0},0,255,ot.ZERO,ot.ZERO,ot.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,Po.disabled,this.stencilClearMode,qs.disabled,Pa.disabled,Lo(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(qs.disabled),Q.setDepthMode(Po.disabled);let le=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(let qe of B){let Xe=this._tileClippingMaskIDs[qe.key]=this.nextStencilID++,ot=this.style.map.terrain&&this.style.map.terrain.getTerrainData(qe);le.draw(Q,ee.TRIANGLES,Po.disabled,new Yo({func:ee.ALWAYS,mask:0},Xe,255,ee.KEEP,ee.KEEP,ee.REPLACE),qs.disabled,Pa.disabled,Lo(qe.posMatrix),ot,\"$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 Yo({func:B.NOTEQUAL,mask:255},w,255,B.KEEP,B.KEEP,B.REPLACE)}stencilModeForClipping(w){let B=this.context.gl;return new Yo({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,Xe)=>Xe.overscaledZ-qe.overscaledZ),ee=Q[Q.length-1].overscaledZ,le=Q[0].overscaledZ-ee+1;if(le>1){this.currentStencilSource=void 0,this.nextStencilID+le>256&&this.clearStencil();let qe={};for(let Xe=0;Xe({u_sky_color:Be.properties.get(\"sky-color\"),u_horizon_color:Be.properties.get(\"horizon-color\"),u_horizon:(et.height/2+et.getHorizon())*We,u_sky_horizon_blend:Be.properties.get(\"sky-horizon-blend\")*et.height/2*We}))(Tt,ot.style.map.transform,ot.pixelRatio),Ir=new Po(Kt.LEQUAL,Po.ReadWrite,[0,1]),ve=Yo.disabled,be=ot.colorModeForRenderPass(),De=ot.useProgram(\"sky\");if(!Tt.mesh){let Be=new a.aX;Be.emplaceBack(-1,-1),Be.emplaceBack(1,-1),Be.emplaceBack(1,1),Be.emplaceBack(-1,1);let et=new a.aY;et.emplaceBack(0,1,2),et.emplaceBack(0,2,3),Tt.mesh=new Eu(Yt.createVertexBuffer(Be,vo.members),Yt.createIndexBuffer(et),a.a0.simpleSegment(0,0,Be.length,et.length))}De.draw(Yt,Kt.TRIANGLES,Ir,ve,be,Pa.disabled,xr,void 0,\"sky\",Tt.mesh.vertexBuffer,Tt.mesh.indexBuffer,Tt.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 ot=this.style._layers[Q[this.currentLayer]],Tt=ee[ot.source],Yt=le[ot.source];this._renderTileClippingMasks(ot,Yt),this.renderLayer(this,Tt,ot,Yt)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayerDe.source&&!De.isHidden(Yt)?[Tt.sourceCaches[De.source]]:[]),Ir=xr.filter(De=>De.getSource().type===\"vector\"),ve=xr.filter(De=>De.getSource().type!==\"vector\"),be=De=>{(!Kt||Kt.getSource().maxzoombe(De)),Kt||ve.forEach(De=>be(De)),Kt}(this.style,this.transform.zoom);ot&&function(Tt,Yt,Kt){for(let xr=0;xr0),ee&&(a.b0(B,Q),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.sourceCache.getRenderableTiles(),Ir=le.useProgram(\"terrainDepth\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"depth\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1});for(let ve of xr){let be=qe.getTerrainData(ve.tileID),De={u_matrix:le.transform.calculatePosMatrix(ve.tileID.toUnwrapped()),u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};Ir.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,De,be,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.height])}(this,this.style.map.terrain),function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.getCoordsTexture(),Ir=qe.sourceCache.getRenderableTiles(),ve=le.useProgram(\"terrainCoords\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"coords\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1}),qe.coordsIndex=[];for(let be of Ir){let De=qe.getTerrainData(be.tileID);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,xr.texture);let Be={u_matrix:le.transform.calculatePosMatrix(be.tileID.toUnwrapped()),u_terrain_coords_id:(255-qe.coordsIndex.length)/255,u_texture:0,u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};ve.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,Be,De,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments),qe.coordsIndex.push(be.tileID.key)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.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(le,qe,Xe,ot,Tt){if(le.renderPass!==\"translucent\")return;let Yt=Yo.disabled,Kt=le.colorModeForRenderPass();(Xe._unevaluatedLayout.hasValue(\"text-variable-anchor\")||Xe._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"))&&function(xr,Ir,ve,be,De,Be,et,We,it){let Ft=Ir.transform,Ht=yn(),tr=De===\"map\",dr=Be===\"map\";for(let Sr of xr){let Or=be.getTile(Sr),Wr=Or.getBucket(ve);if(!Wr||!Wr.text||!Wr.text.segments.get().length)continue;let ni=a.ag(Wr.textSizeData,Ft.zoom),Pi=In(Or,1,Ir.transform.zoom),cn=Br(Sr.posMatrix,dr,tr,Ir.transform,Pi),ln=ve.layout.get(\"icon-text-fit\")!==\"none\"&&Wr.hasIconData();if(ni){let Cn=Math.pow(2,Ft.zoom-Or.tileID.overscaledZ),Kn=Ir.style.map.terrain?(fa,$a)=>Ir.style.map.terrain.getElevation(Sr,fa,$a):null,Ta=Ht.translatePosition(Ft,Or,et,We);yf(Wr,tr,dr,it,Ft,cn,Sr.posMatrix,Cn,ni,ln,Ht,Ta,Sr.toUnwrapped(),Kn)}}}(ot,le,Xe,qe,Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Tt),Xe.paint.get(\"icon-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!1,Xe.paint.get(\"icon-translate\"),Xe.paint.get(\"icon-translate-anchor\"),Xe.layout.get(\"icon-rotation-alignment\"),Xe.layout.get(\"icon-pitch-alignment\"),Xe.layout.get(\"icon-keep-upright\"),Yt,Kt),Xe.paint.get(\"text-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!0,Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.layout.get(\"text-keep-upright\"),Yt,Kt),qe.map.showCollisionBoxes&&(Hu(le,qe,Xe,ot,!0),Hu(le,qe,Xe,ot,!1))})(w,B,Q,ee,this.style.placement.variableOffsets);break;case\"circle\":(function(le,qe,Xe,ot){if(le.renderPass!==\"translucent\")return;let Tt=Xe.paint.get(\"circle-opacity\"),Yt=Xe.paint.get(\"circle-stroke-width\"),Kt=Xe.paint.get(\"circle-stroke-opacity\"),xr=!Xe.layout.get(\"circle-sort-key\").isConstant();if(Tt.constantOr(1)===0&&(Yt.constantOr(1)===0||Kt.constantOr(1)===0))return;let Ir=le.context,ve=Ir.gl,be=le.depthModeForSublayer(0,Po.ReadOnly),De=Yo.disabled,Be=le.colorModeForRenderPass(),et=[];for(let We=0;WeWe.sortKey-it.sortKey);for(let We of et){let{programConfiguration:it,program:Ft,layoutVertexBuffer:Ht,indexBuffer:tr,uniformValues:dr,terrainData:Sr}=We.state;Ft.draw(Ir,ve.TRIANGLES,be,De,Be,Pa.disabled,dr,Sr,Xe.id,Ht,tr,We.segments,Xe.paint,le.transform.zoom,it)}})(w,B,Q,ee);break;case\"heatmap\":(function(le,qe,Xe,ot){if(Xe.paint.get(\"heatmap-opacity\")===0)return;let Tt=le.context;if(le.style.map.terrain){for(let Yt of ot){let Kt=qe.getTile(Yt);qe.hasRenderableParent(Yt)||(le.renderPass===\"offscreen\"?_f(le,Kt,Xe,Yt):le.renderPass===\"translucent\"&&Yc(le,Xe,Yt))}Tt.viewport.set([0,0,le.width,le.height])}else le.renderPass===\"offscreen\"?function(Yt,Kt,xr,Ir){let ve=Yt.context,be=ve.gl,De=Yo.disabled,Be=new qs([be.ONE,be.ONE],a.aM.transparent,[!0,!0,!0,!0]);(function(et,We,it){let Ft=et.gl;et.activeTexture.set(Ft.TEXTURE1),et.viewport.set([0,0,We.width/4,We.height/4]);let Ht=it.heatmapFbos.get(a.aU);Ht?(Ft.bindTexture(Ft.TEXTURE_2D,Ht.colorAttachment.get()),et.bindFramebuffer.set(Ht.framebuffer)):(Ht=eh(et,We.width/4,We.height/4),it.heatmapFbos.set(a.aU,Ht))})(ve,Yt,xr),ve.clear({color:a.aM.transparent});for(let et=0;et20&&Yt.texParameterf(Yt.TEXTURE_2D,Tt.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,Tt.extTextureFilterAnisotropicMax);let Wr=le.style.map.terrain&&le.style.map.terrain.getTerrainData(et),ni=Wr?et:null,Pi=ni?ni.posMatrix:le.transform.calculatePosMatrix(et.toUnwrapped(),Be),cn=cl(Pi,Sr||[0,0],dr||1,tr,Xe);Kt instanceof Gt?xr.draw(Tt,Yt.TRIANGLES,We,Yo.disabled,Ir,Pa.disabled,cn,Wr,Xe.id,Kt.boundsBuffer,le.quadTriangleIndexBuffer,Kt.boundsSegments):xr.draw(Tt,Yt.TRIANGLES,We,ve[et.overscaledZ],Ir,Pa.disabled,cn,Wr,Xe.id,le.rasterBoundsBuffer,le.quadTriangleIndexBuffer,le.rasterBoundsSegments)}})(w,B,Q,ee);break;case\"background\":(function(le,qe,Xe,ot){let Tt=Xe.paint.get(\"background-color\"),Yt=Xe.paint.get(\"background-opacity\");if(Yt===0)return;let Kt=le.context,xr=Kt.gl,Ir=le.transform,ve=Ir.tileSize,be=Xe.paint.get(\"background-pattern\");if(le.isPatternMissing(be))return;let De=!be&&Tt.a===1&&Yt===1&&le.opaquePassEnabledForLayer()?\"opaque\":\"translucent\";if(le.renderPass!==De)return;let Be=Yo.disabled,et=le.depthModeForSublayer(0,De===\"opaque\"?Po.ReadWrite:Po.ReadOnly),We=le.colorModeForRenderPass(),it=le.useProgram(be?\"backgroundPattern\":\"background\"),Ft=ot||Ir.coveringTiles({tileSize:ve,terrain:le.style.map.terrain});be&&(Kt.activeTexture.set(xr.TEXTURE0),le.imageManager.bind(le.context));let Ht=Xe.getCrossfadeParameters();for(let tr of Ft){let dr=ot?tr.posMatrix:le.transform.calculatePosMatrix(tr.toUnwrapped()),Sr=be?Su(dr,Yt,le,be,{tileID:tr,tileSize:ve},Ht):Zl(dr,Yt,Tt),Or=le.style.map.terrain&&le.style.map.terrain.getTerrainData(tr);it.draw(Kt,xr.TRIANGLES,et,Be,We,Pa.disabled,Sr,Or,Xe.id,le.tileExtentBuffer,le.quadTriangleIndexBuffer,le.tileExtentSegments)}})(w,0,Q,ee);break;case\"custom\":(function(le,qe,Xe){let ot=le.context,Tt=Xe.implementation;if(le.renderPass===\"offscreen\"){let Yt=Tt.prerender;Yt&&(le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),Yt.call(Tt,ot.gl,le.transform.customLayerMatrix()),ot.setDirty(),le.setBaseState())}else if(le.renderPass===\"translucent\"){le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),ot.setStencilMode(Yo.disabled);let Yt=Tt.renderingMode===\"3d\"?new Po(le.context.gl.LEQUAL,Po.ReadWrite,le.depthRangeFor3D):le.depthModeForSublayer(0,Po.ReadOnly);ot.setDepthMode(Yt),Tt.render(ot.gl,le.transform.customLayerMatrix(),{farZ:le.transform.farZ,nearZ:le.transform.nearZ,fov:le.transform._fov,modelViewProjectionMatrix:le.transform.modelViewProjectionMatrix,projectionMatrix:le.transform.projectionMatrix}),ot.setDirty(),le.setBaseState(),ot.bindFramebuffer.set(null)}})(w,0,Q)}}translatePosMatrix(w,B,Q,ee,le){if(!Q[0]&&!Q[1])return w;let qe=le?ee===\"map\"?this.transform.angle:0:ee===\"viewport\"?-this.transform.angle:0;if(qe){let Tt=Math.sin(qe),Yt=Math.cos(qe);Q=[Q[0]*Yt-Q[1]*Tt,Q[0]*Tt+Q[1]*Yt]}let Xe=[le?Q[0]:In(B,Q[0],this.transform.zoom),le?Q[1]:In(B,Q[1],this.transform.zoom),0],ot=new Float32Array(16);return a.J(ot,w,Xe),ot}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 hn(this.context,jn[w],B,nc[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 g(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 ks{constructor(w,B){this.points=w,this.planes=B}static fromInvProjectionMatrix(w,B,Q){let ee=Math.pow(2,Q),le=[[-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(Xe=>{let ot=1/(Xe=a.af([],Xe,w))[3]/B*ee;return a.b1(Xe,Xe,[ot,ot,1/Xe[3],ot])}),qe=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(Xe=>{let ot=function(xr,Ir){var ve=Ir[0],be=Ir[1],De=Ir[2],Be=ve*ve+be*be+De*De;return Be>0&&(Be=1/Math.sqrt(Be)),xr[0]=Ir[0]*Be,xr[1]=Ir[1]*Be,xr[2]=Ir[2]*Be,xr}([],function(xr,Ir,ve){var be=Ir[0],De=Ir[1],Be=Ir[2],et=ve[0],We=ve[1],it=ve[2];return xr[0]=De*it-Be*We,xr[1]=Be*et-be*it,xr[2]=be*We-De*et,xr}([],L([],le[Xe[0]],le[Xe[1]]),L([],le[Xe[2]],le[Xe[1]]))),Tt=-((Yt=ot)[0]*(Kt=le[Xe[1]])[0]+Yt[1]*Kt[1]+Yt[2]*Kt[2]);var Yt,Kt;return ot.concat(Tt)});return new ks(le,qe)}}class bc{constructor(w,B){this.min=w,this.max=B,this.center=function(Q,ee,le){return Q[0]=.5*ee[0],Q[1]=.5*ee[1],Q[2]=.5*ee[2],Q}([],function(Q,ee,le){return Q[0]=ee[0]+le[0],Q[1]=ee[1]+le[1],Q[2]=ee[2]+le[2],Q}([],this.min,this.max))}quadrant(w){let B=[w%2==0,w<2],Q=E(this.min),ee=E(this.max);for(let le=0;le=0&&qe++;if(qe===0)return 0;qe!==B.length&&(Q=!1)}if(Q)return 2;for(let ee=0;ee<3;ee++){let le=Number.MAX_VALUE,qe=-Number.MAX_VALUE;for(let Xe=0;Xethis.max[ee]-this.min[ee])return 0}return 1}}class hu{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 hu(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}let _u=85.051129;class nl{constructor(w,B,Q,ee,le){this.tileSize=512,this._renderWorldCopies=le===void 0||!!le,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 hu,this._posMatrixCache={},this._alignedPosMatrixCache={},this._fogMatrixCache={},this.minElevationForCurrentTile=0}clone(){let w=new nl(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,le){var qe=ee[0],Xe=ee[1],ot=ee[2],Tt=ee[3],Yt=Math.sin(le),Kt=Math.cos(le);Q[0]=qe*Kt+ot*Yt,Q[1]=Xe*Kt+Tt*Yt,Q[2]=qe*-Yt+ot*Kt,Q[3]=Xe*-Yt+Tt*Kt}(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)),le=this.pointCoordinate(new a.P(this.width,this.height)),qe=this.pointCoordinate(new a.P(0,this.height)),Xe=Math.floor(Math.min(Q.x,ee.x,le.x,qe.x)),ot=Math.floor(Math.max(Q.x,ee.x,le.x,qe.x)),Tt=1;for(let Yt=Xe-Tt;Yt<=ot+Tt;Yt++)Yt!==0&&B.push(new a.b4(Yt,w))}return B}coveringTiles(w){var B,Q;let ee=this.coveringZoomLevel(w),le=ee;if(w.minzoom!==void 0&&eew.maxzoom&&(ee=w.maxzoom);let qe=this.pointCoordinate(this.getCameraPoint()),Xe=a.Z.fromLngLat(this.center),ot=Math.pow(2,ee),Tt=[ot*qe.x,ot*qe.y,0],Yt=[ot*Xe.x,ot*Xe.y,0],Kt=ks.fromInvProjectionMatrix(this.invModelViewProjectionMatrix,this.worldSize,ee),xr=w.minzoom||0;!w.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(xr=ee);let Ir=w.terrain?2/Math.min(this.tileSize,w.tileSize)*this.tileSize:3,ve=We=>({aabb:new bc([We*ot,0,0],[(We+1)*ot,ot,0]),zoom:0,x:0,y:0,wrap:We,fullyVisible:!1}),be=[],De=[],Be=ee,et=w.reparseOverscaled?le:ee;if(this._renderWorldCopies)for(let We=1;We<=3;We++)be.push(ve(-We)),be.push(ve(We));for(be.push(ve(0));be.length>0;){let We=be.pop(),it=We.x,Ft=We.y,Ht=We.fullyVisible;if(!Ht){let Wr=We.aabb.intersects(Kt);if(Wr===0)continue;Ht=Wr===2}let tr=w.terrain?Tt:Yt,dr=We.aabb.distanceX(tr),Sr=We.aabb.distanceY(tr),Or=Math.max(Math.abs(dr),Math.abs(Sr));if(We.zoom===Be||Or>Ir+(1<=xr){let Wr=Be-We.zoom,ni=Tt[0]-.5-(it<>1),cn=We.zoom+1,ln=We.aabb.quadrant(Wr);if(w.terrain){let Cn=new a.S(cn,We.wrap,cn,ni,Pi),Kn=w.terrain.getMinMaxElevation(Cn),Ta=(B=Kn.minElevation)!==null&&B!==void 0?B:this.elevation,fa=(Q=Kn.maxElevation)!==null&&Q!==void 0?Q:this.elevation;ln=new bc([ln.min[0],ln.min[1],Ta],[ln.max[0],ln.max[1],fa])}be.push({aabb:ln,zoom:cn,x:ni,y:Pi,wrap:We.wrap,fullyVisible:Ht})}}return De.sort((We,it)=>We.distanceSq-it.distanceSq).map(We=>We.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,_u);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),le=w.getElevationForLngLatZoom(ee,this.tileZoom);if(!(this.elevation-le))return;let qe=Q+B-le,Xe=Math.cos(this._pitch)*this.cameraToCenterDistance/qe/a.b5(1,ee.lat),ot=this.scaleZoom(Xe/this.tileSize);this._elevation=le,this._center=ee,this.zoom=ot}setLocationAtPoint(w,B){let Q=this.pointCoordinate(B),ee=this.pointCoordinate(this.centerPoint),le=this.locationCoordinate(w),qe=new a.Z(le.x-(Q.x-ee.x),le.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 xr=B.pointCoordinate(w);if(xr!=null)return xr}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 le=Q[3],qe=ee[3],Xe=Q[1]/le,ot=ee[1]/qe,Tt=Q[2]/le,Yt=ee[2]/qe,Kt=Tt===Yt?0:(0-Tt)/(Yt-Tt);return new a.Z(a.y.number(Q[0]/le,ee[0]/qe,Kt)/this.worldSize,a.y.number(Xe,ot,Kt)/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,_u])}calculateTileMatrix(w){let B=w.canonical,Q=this.worldSize/this.zoomScale(B.z),ee=B.x+Math.pow(2,B.z)*w.wrap,le=a.an(new Float64Array(16));return a.J(le,le,[ee*Q,B.y*Q,0]),a.K(le,le,[Q/a.X,Q/a.X,1]),le}calculatePosMatrix(w,B=!1){let Q=w.key,ee=B?this._alignedPosMatrixCache:this._posMatrixCache;if(ee[Q])return ee[Q];let le=this.calculateTileMatrix(w);return a.L(le,B?this.alignedModelViewProjectionMatrix:this.modelViewProjectionMatrix,le),ee[Q]=new Float32Array(le),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 We=179.9999999999;ee=[-We,We]}let le=this.tileSize*this.zoomScale(Q.zoom),qe=0,Xe=le,ot=0,Tt=le,Yt=0,Kt=0,{x:xr,y:Ir}=this.size;if(this.latRange){let We=this.latRange;qe=a.Q(We[1])*le,Xe=a.Q(We[0])*le,Xe-qeXe&&(Be=Xe-We)}if(ee){let We=(ot+Tt)/2,it=ve;this._renderWorldCopies&&(it=a.b3(ve,We-le/2,We+le/2));let Ft=xr/2;it-FtTt&&(De=Tt-Ft)}if(De!==void 0||Be!==void 0){let We=new a.P(De!=null?De:ve,Be!=null?Be:be);Q.center=this.unproject.call({worldSize:le},We).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 le=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),qe=Math.min(this.elevation,this.minElevationForCurrentTile),Xe=le-qe*this._pixelPerMeter/Math.cos(this._pitch),ot=qe<0?Xe:le,Tt=Math.PI/2+this._pitch,Yt=this._fov*(.5+w.y/this.height),Kt=Math.sin(Yt)*ot/Math.sin(a.ac(Math.PI-Tt-Yt,.01,Math.PI-.01)),xr=this.getHorizon(),Ir=2*Math.atan(xr/this.cameraToCenterDistance)*(.5+w.y/(2*xr)),ve=Math.sin(Ir)*ot/Math.sin(a.ac(Math.PI-Tt-Ir,.01,Math.PI-.01)),be=Math.min(Kt,ve);this.farZ=1.01*(Math.cos(Math.PI/2-this._pitch)*be+ot),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,le,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 De=this.width%2/2,Be=this.height%2/2,et=Math.cos(this.angle),We=Math.sin(this.angle),it=B-Math.round(B)+et*De+We*Be,Ft=Q-Math.round(Q)+et*Be+We*De,Ht=new Float64Array(ee);if(a.J(Ht,Ht,[it>.5?it-1:it,Ft>.5?Ft-1:Ft,0]),this.alignedModelViewProjectionMatrix=Ht,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,le=B.x,qe=B.y;for(let Xe of w)Q=Math.min(Q,Xe.x),ee=Math.min(ee,Xe.y),le=Math.max(le,Xe.x),qe=Math.max(qe,Xe.y);return[new a.P(Q,ee),new a.P(le,ee),new a.P(le,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 nh(ue,w){let B,Q=!1,ee=null,le=null,qe=()=>{ee=null,Q&&(ue.apply(le,B),ee=setTimeout(qe,w),Q=!1)};return(...Xe)=>(Q=!0,le=this,B=Xe,ee||qe(),ee)}class Ah{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 le=window.location.hash.replace(ee,\"\");le.startsWith(\"#&\")?le=le.slice(0,1)+le.slice(2):le===\"#\"&&(le=\"\");let qe=window.location.href.replace(/(#.+)?$/,le);qe=qe.replace(\"&&\",\"&\"),window.history.replaceState(window.history.state,null,qe)},this._updateHash=nh(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),le=Math.pow(10,ee),qe=Math.round(B.lng*le)/le,Xe=Math.round(B.lat*le)/le,ot=this._map.getBearing(),Tt=this._map.getPitch(),Yt=\"\";if(Yt+=w?`/${qe}/${Xe}/${Q}`:`${Q}/${Xe}/${qe}`,(ot||Tt)&&(Yt+=\"/\"+Math.round(10*ot)/10),Tt&&(Yt+=`/${Math.round(Tt)}`),this._hashName){let Kt=this._hashName,xr=!1,Ir=window.location.hash.slice(1).split(\"&\").map(ve=>{let be=ve.split(\"=\")[0];return be===Kt?(xr=!0,`${be}=${Yt}`):ve}).filter(ve=>ve);return xr||Ir.push(`${Kt}=${Yt}`),`#${Ir.join(\"&\")}`}return`#${Yt}`}}let zu={linearity:.3,easing:a.b8(0,0,.3,1)},Fc=a.e({deceleration:2500,maxSpeed:1400},zu),wc=a.e({deceleration:20,maxSpeed:1400},zu),bd=a.e({deceleration:1e3,maxSpeed:360},zu),xf=a.e({deceleration:1e3,maxSpeed:90},zu);class Pf{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:le}of this._inertiaBuffer)B.zoom+=le.zoomDelta||0,B.bearing+=le.bearingDelta||0,B.pitch+=le.pitchDelta||0,le.panDelta&&B.pan._add(le.panDelta),le.around&&(B.around=le.around),le.pinchAround&&(B.pinchAround=le.pinchAround);let Q=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,ee={};if(B.pan.mag()){let le=bf(B.pan.mag(),Q,a.e({},Fc,w||{}));ee.offset=B.pan.mult(le.amount/B.pan.mag()),ee.center=this._map.transform.center,Ou(ee,le)}if(B.zoom){let le=bf(B.zoom,Q,wc);ee.zoom=this._map.transform.zoom+le.amount,Ou(ee,le)}if(B.bearing){let le=bf(B.bearing,Q,bd);ee.bearing=this._map.transform.bearing+a.ac(le.amount,-179,179),Ou(ee,le)}if(B.pitch){let le=bf(B.pitch,Q,xf);ee.pitch=this._map.transform.pitch+le.amount,Ou(ee,le)}if(ee.zoom||ee.bearing){let le=B.pinchAround===void 0?B.around:B.pinchAround;ee.around=le?this._map.unproject(le):this._map.getCenter()}return this.clear(),a.e(ee,{noMoveStart:!0})}}function Ou(ue,w){(!ue.duration||ue.durationB.unproject(ot)),Xe=le.reduce((ot,Tt,Yt,Kt)=>ot.add(Tt.div(Kt.length)),new a.P(0,0));super(w,{points:le,point:Xe,lngLats:qe,lngLat:B.unproject(Xe),originalEvent:Q}),this._defaultPrevented=!1}}class Hh extends a.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(w,B,Q){super(w,{originalEvent:Q}),this._defaultPrevented=!1}}class If{constructor(w,B){this._map=w,this._clickTolerance=B.clickTolerance}reset(){delete this._mousedownPos}wheel(w){return this._firePreventable(new Hh(w.type,this._map,w))}mousedown(w,B){return this._mousedownPos=B,this._firePreventable(new jl(w.type,this._map,w))}mouseup(w){this._map.fire(new jl(w.type,this._map,w))}click(w,B){this._mousedownPos&&this._mousedownPos.dist(B)>=this._clickTolerance||this._map.fire(new jl(w.type,this._map,w))}dblclick(w){return this._firePreventable(new jl(w.type,this._map,w))}mouseover(w){this._map.fire(new jl(w.type,this._map,w))}mouseout(w){this._map.fire(new jl(w.type,this._map,w))}touchstart(w){return this._firePreventable(new lf(w.type,this._map,w))}touchmove(w){this._map.fire(new lf(w.type,this._map,w))}touchend(w){this._map.fire(new lf(w.type,this._map,w))}touchcancel(w){this._map.fire(new lf(w.type,this._map,w))}_firePreventable(w){if(this._map.fire(w),w.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Cs{constructor(w){this._map=w}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(w){this._map.fire(new jl(w.type,this._map,w))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new jl(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(w){this._delayContextMenu?this._contextMenuEvent=w:this._ignoreContextMenu||this._map.fire(new jl(w.type,this._map,w)),this._map.listens(\"contextmenu\")&&w.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class du{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 ku{constructor(w,B){this._map=w,this._tr=new du(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)le.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 Wf(ue,w){if(ue.length!==w.length)throw new Error(`The number of touches and points are not equal - touches ${ue.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 le=new a.P(0,0);for(let qe of ee)le._add(qe);return le.div(ee.length)}(B),this.touches=Wf(Q,B)))}touchmove(w,B,Q){if(this.aborted||!this.centroid)return;let ee=Wf(Q,B);for(let le in this.touches){let qe=ee[le];(!qe||qe.dist(this.touches[le])>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 wf{constructor(w){this.singleTap=new Us(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 le=w.timeStamp-this.lastTime<500,qe=!this.lastTap||this.lastTap.dist(ee)<30;if(le&&qe||this.reset(),this.count++,this.lastTime=w.timeStamp,this.lastTap=ee,this.count===this.numTaps)return this.reset(),ee}}}class zc{constructor(w){this._tr=new du(w),this._zoomIn=new wf({numTouches:1,numTaps:2}),this._zoomOut=new wf({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),le=this._zoomOut.touchend(w,B,Q),qe=this._tr;return ee?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom+1,around:qe.unproject(ee)},{originalEvent:w})}):le?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom-1,around:qe.unproject(le)},{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 Wu{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){ue.mousedown=ue.dragStart,ue.mousemoveWindow=ue.dragMove,ue.mouseup=ue.dragEnd,ue.contextmenu=w=>{w.preventDefault()}},Wl=({enable:ue,clickTolerance:w,bearingDegreesPerPixelMoved:B=.8})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({bearingDelta:(le.x-ee.x)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})},ah=({enable:ue,clickTolerance:w,pitchDegreesPerPixelMoved:B=-.5})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({pitchDelta:(le.y-ee.y)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})};class Zu{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=Wf(Q,B),le=new a.P(0,0),qe=new a.P(0,0),Xe=0;for(let Tt in ee){let Yt=ee[Tt],Kt=this._touches[Tt];Kt&&(le._add(Yt),qe._add(Yt.sub(Kt)),Xe++,ee[Tt]=Yt)}if(this._touches=ee,this._shouldBePrevented(Xe)||!qe.mag())return;let ot=qe.div(Xe);return this._sum._add(ot),this._sum.mag()Math.abs(ue.x)}class Bc extends Oc{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,fc(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]),le=w[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(ee,le,Q.timeStamp),this._valid?(this._lastPoints=w,this._active=!0,{pitchDelta:(ee.y+le.y)/2*-.5}):void 0}gestureBeginsVertically(w,B,Q){if(this._valid!==void 0)return this._valid;let ee=w.mag()>=2,le=B.mag()>=2;if(!ee&&!le)return;if(!ee||!le)return this._firstMove===void 0&&(this._firstMove=Q),Q-this._firstMove<100&&void 0;let qe=w.y>0==B.y>0;return fc(w)&&fc(B)&&qe}}let At={panStep:100,bearingStep:15,pitchStep:10};class Wt{constructor(w){this._tr=new du(w);let B=At;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,le=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(),le=-1);break;case 39:w.shiftKey?Q=1:(w.preventDefault(),le=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:Xe=>{let ot=this._tr;Xe.easeTo({duration:300,easeId:\"keyboardHandler\",easing:Cr,zoom:B?Math.round(ot.zoom)+B*(w.shiftKey?2:1):ot.zoom,bearing:ot.bearing+Q*this._bearingStep,pitch:ot.pitch+ee*this._pitchStep,offset:[-le*this._panStep,-qe*this._panStep],center:ot.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 Cr(ue){return ue*(2-ue)}let Ar=4.000244140625;class Kr{constructor(w,B){this._onTimeout=Q=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(Q)},this._map=w,this._tr=new du(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%Ar==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 ot=this._type===\"wheel\"&&Math.abs(this._delta)>Ar?this._wheelZoomRate:this._defaultZoomRate,Tt=2/(1+Math.exp(-Math.abs(this._delta*ot)));this._delta<0&&Tt!==0&&(Tt=1/Tt);let Yt=typeof this._targetZoom==\"number\"?w.zoomScale(this._targetZoom):w.scale;this._targetZoom=Math.min(w.maxZoom,Math.max(w.minZoom,w.scaleZoom(Yt*Tt))),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,le,qe=!1,Xe=u.now()-this._lastWheelEventTime;if(this._type===\"wheel\"&&Q&&ee&&Xe){let ot=Math.min(Xe/200,1),Tt=ee(ot);le=a.y.number(Q,B,Tt),ot<1?this._frameId||(this._frameId=!0):qe=!0}else le=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:le-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,le=Q.easing(ee+.01)-Q.easing(ee),qe=.27/Math.sqrt(le*le+1e-4)*.01,Xe=Math.sqrt(.0729-qe*qe);B=a.b8(qe,Xe,.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 ki{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 du(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 dn{constructor(){this._tap=new wf({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],le=w.timeStamp-this._tapTime<500,qe=this._tapPoint.dist(ee)<30;le&&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],le=ee.y-this._swipePoint.y;return this._swipePoint=ee,w.preventDefault(),this._active=!0,{zoomDelta:le/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 wn{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 Nn{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 Yi{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 le=document.createElement(\"div\");le.className=\"maplibregl-mobile-message\",le.textContent=Q,this._container.appendChild(le),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 on=ue=>ue.zoom||ue.drag||ue.pitch||ue.rotate;class Fi extends a.k{}function $n(ue){return ue.panDelta&&ue.panDelta.mag()||ue.zoomDelta||ue.bearingDelta||ue.pitchDelta}class Ca{constructor(w,B){this.handleWindowEvent=ee=>{this.handleEvent(ee,`${ee.type}Window`)},this.handleEvent=(ee,le)=>{if(ee.type===\"blur\")return void this.stop(!0);this._updatingCamera=!0;let qe=ee.type===\"renderFrame\"?void 0:ee,Xe={needsRenderFrame:!1},ot={},Tt={},Yt=ee.touches,Kt=Yt?this._getMapTouches(Yt):void 0,xr=Kt?c.touchPos(this._map.getCanvas(),Kt):c.mousePos(this._map.getCanvas(),ee);for(let{handlerName:be,handler:De,allowed:Be}of this._handlers){if(!De.isEnabled())continue;let et;this._blockedByActive(Tt,Be,be)?De.reset():De[le||ee.type]&&(et=De[le||ee.type](ee,xr,Kt),this.mergeHandlerResult(Xe,ot,et,be,qe),et&&et.needsRenderFrame&&this._triggerRenderFrame()),(et||De.isActive())&&(Tt[be]=De)}let Ir={};for(let be in this._previousActiveHandlers)Tt[be]||(Ir[be]=qe);this._previousActiveHandlers=Tt,(Object.keys(Ir).length||$n(Xe))&&(this._changes.push([Xe,ot,Ir]),this._triggerRenderFrame()),(Object.keys(Tt).length||$n(Xe))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:ve}=Xe;ve&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],ve(this._map))},this._map=w,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Pf(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,le,qe]of this._listeners)c.addEventListener(ee,le,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 If(B,w));let ee=B.boxZoom=new ku(B,w);this._add(\"boxZoom\",ee),w.interactive&&w.boxZoom&&ee.enable();let le=B.cooperativeGestures=new Qi(B,w.cooperativeGestures);this._add(\"cooperativeGestures\",le),w.cooperativeGestures&&le.enable();let qe=new zc(B),Xe=new Xi(B);B.doubleClickZoom=new ki(Xe,qe),this._add(\"tapZoom\",qe),this._add(\"clickZoom\",Xe),w.interactive&&w.doubleClickZoom&&B.doubleClickZoom.enable();let ot=new dn;this._add(\"tapDragZoom\",ot);let Tt=B.touchPitch=new Bc(B);this._add(\"touchPitch\",Tt),w.interactive&&w.touchPitch&&B.touchPitch.enable(w.touchPitch);let Yt=Wl(w),Kt=ah(w);B.dragRotate=new Nn(w,Yt,Kt),this._add(\"mouseRotate\",Yt,[\"mousePitch\"]),this._add(\"mousePitch\",Kt,[\"mouseRotate\"]),w.interactive&&w.dragRotate&&B.dragRotate.enable();let xr=(({enable:et,clickTolerance:We})=>{let it=new Xu({checkCorrectEvent:Ft=>c.mouseButton(Ft)===0&&!Ft.ctrlKey});return new Wu({clickTolerance:We,move:(Ft,Ht)=>({around:Ht,panDelta:Ht.sub(Ft)}),activateOnStart:!0,moveStateManager:it,enable:et,assignEvents:Xf})})(w),Ir=new Zu(w,B);B.dragPan=new wn(Q,xr,Ir),this._add(\"mousePan\",xr),this._add(\"touchPan\",Ir,[\"touchZoom\",\"touchRotate\"]),w.interactive&&w.dragPan&&B.dragPan.enable(w.dragPan);let ve=new cf,be=new vu;B.touchZoomRotate=new Yi(Q,be,ve,ot),this._add(\"touchRotate\",ve,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",be,[\"touchPan\",\"touchRotate\"]),w.interactive&&w.touchZoomRotate&&B.touchZoomRotate.enable(w.touchZoomRotate);let De=B.scrollZoom=new Kr(B,()=>this._triggerRenderFrame());this._add(\"scrollZoom\",De,[\"mousePan\"]),w.interactive&&w.scrollZoom&&B.scrollZoom.enable(w.scrollZoom);let Be=B.keyboard=new Wt(B);this._add(\"keyboard\",Be),w.interactive&&w.keyboard&&B.keyboard.enable(),this._add(\"blockableMapEvent\",new Cs(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!!on(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,le){if(!Q)return;a.e(w,Q);let qe={handlerName:ee,originalEvent:Q.originalEvent||le};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,le,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,le),a.e(Q,qe);this._updateMapTransform(w,B,Q),this._changes=[]}_updateMapTransform(w,B,Q){let ee=this._map,le=ee._getTransformForUpdate(),qe=ee.terrain;if(!($n(w)||qe&&this._terrainMovement))return this._fireEvents(B,Q,!0);let{panDelta:Xe,zoomDelta:ot,bearingDelta:Tt,pitchDelta:Yt,around:Kt,pinchAround:xr}=w;xr!==void 0&&(Kt=xr),ee._stop(!0),Kt=Kt||ee.transform.centerPoint;let Ir=le.pointLocation(Xe?Kt.sub(Xe):Kt);Tt&&(le.bearing+=Tt),Yt&&(le.pitch+=Yt),ot&&(le.zoom+=ot),qe?this._terrainMovement||!B.drag&&!B.zoom?B.drag&&this._terrainMovement?le.center=le.pointLocation(le.centerPoint.sub(Xe)):le.setLocationAtPoint(Ir,Kt):(this._terrainMovement=!0,this._map._elevationFreeze=!0,le.setLocationAtPoint(Ir,Kt)):le.setLocationAtPoint(Ir,Kt),ee._applyUpdatedTransform(le),this._map._update(),w.noInertia||this._inertia.record(w),this._fireEvents(B,Q,!0)}_fireEvents(w,B,Q){let ee=on(this._eventsInProgress),le=on(w),qe={};for(let Kt in w){let{originalEvent:xr}=w[Kt];this._eventsInProgress[Kt]||(qe[`${Kt}start`]=xr),this._eventsInProgress[Kt]=w[Kt]}!ee&&le&&this._fireEvent(\"movestart\",le.originalEvent);for(let Kt in qe)this._fireEvent(Kt,qe[Kt]);le&&this._fireEvent(\"move\",le.originalEvent);for(let Kt in w){let{originalEvent:xr}=w[Kt];this._fireEvent(Kt,xr)}let Xe={},ot;for(let Kt in this._eventsInProgress){let{handlerName:xr,originalEvent:Ir}=this._eventsInProgress[Kt];this._handlersById[xr].isActive()||(delete this._eventsInProgress[Kt],ot=B[xr]||Ir,Xe[`${Kt}end`]=ot)}for(let Kt in Xe)this._fireEvent(Kt,Xe[Kt]);let Tt=on(this._eventsInProgress),Yt=(ee||le)&&!Tt;if(Yt&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;let Kt=this._map._getTransformForUpdate();Kt.recalculateZoom(this._map.terrain),this._map._applyUpdatedTransform(Kt)}if(Q&&Yt){this._updatingCamera=!0;let Kt=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),xr=Ir=>Ir!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Fi(\"renderFrame\",{timeStamp:w})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Ra 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(le,De,tr)),this._rotating&&(ee.bearing=a.y.number(qe,Tt,tr)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,tr)),this._padding&&(ee.interpolatePadding(ot,Kt,tr),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(tr),it)ee.setLocationAtPoint(it,Ft);else{let dr=ee.zoomScale(ee.zoom-le),Sr=De>le?Math.min(2,We):Math.max(.5,We),Or=Math.pow(Sr,1-tr),Wr=ee.unproject(Be.add(et.mult(tr*Or)).mult(dr));ee.setLocationAtPoint(ee.renderWorldCopies?Wr.wrap():Wr,Ir)}this._applyUpdatedTransform(ee),this._fireMoveEvents(B)},tr=>{this.terrain&&w.freezeElevation&&this._finalizeElevation(),this._afterEase(B,tr)},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 le=Q.clone(),{center:qe,zoom:Xe,pitch:ot,bearing:Tt,elevation:Yt}=ee(le);qe&&(le.center=qe),Xe!==void 0&&(le.zoom=Xe),ot!==void 0&&(le.pitch=ot),Tt!==void 0&&(le.bearing=Tt),Yt!==void 0&&(le.elevation=Yt),Q.apply(le)}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,le=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)),le&&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 Cn=a.M(w,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(Cn,B)}this.stop(),w=a.e({offset:[0,0],speed:1.2,curve:1.42,easing:a.b9},w);let ee=this._getTransformForUpdate(),le=ee.zoom,qe=ee.bearing,Xe=ee.pitch,ot=ee.padding,Tt=\"bearing\"in w?this._normalizeBearing(w.bearing,qe):qe,Yt=\"pitch\"in w?+w.pitch:Xe,Kt=\"padding\"in w?w.padding:ee.padding,xr=a.P.convert(w.offset),Ir=ee.centerPoint.add(xr),ve=ee.pointLocation(Ir),{center:be,zoom:De}=ee.getConstrained(a.N.convert(w.center||ve),(Q=w.zoom)!==null&&Q!==void 0?Q:le);this._normalizeCenter(be,ee);let Be=ee.zoomScale(De-le),et=ee.project(ve),We=ee.project(be).sub(et),it=w.curve,Ft=Math.max(ee.width,ee.height),Ht=Ft/Be,tr=We.mag();if(\"minZoom\"in w){let Cn=a.ac(Math.min(w.minZoom,le,De),ee.minZoom,ee.maxZoom),Kn=Ft/ee.zoomScale(Cn-le);it=Math.sqrt(Kn/tr*2)}let dr=it*it;function Sr(Cn){let Kn=(Ht*Ht-Ft*Ft+(Cn?-1:1)*dr*dr*tr*tr)/(2*(Cn?Ht:Ft)*dr*tr);return Math.log(Math.sqrt(Kn*Kn+1)-Kn)}function Or(Cn){return(Math.exp(Cn)-Math.exp(-Cn))/2}function Wr(Cn){return(Math.exp(Cn)+Math.exp(-Cn))/2}let ni=Sr(!1),Pi=function(Cn){return Wr(ni)/Wr(ni+it*Cn)},cn=function(Cn){return Ft*((Wr(ni)*(Or(Kn=ni+it*Cn)/Wr(Kn))-Or(ni))/dr)/tr;var Kn},ln=(Sr(!0)-ni)/it;if(Math.abs(tr)<1e-6||!isFinite(ln)){if(Math.abs(Ft-Ht)<1e-6)return this.easeTo(w,B);let Cn=Ht0,Pi=Kn=>Math.exp(Cn*it*Kn)}return w.duration=\"duration\"in w?+w.duration:1e3*ln/(\"screenSpeed\"in w?+w.screenSpeed/it:+w.speed),w.maxDuration&&w.duration>w.maxDuration&&(w.duration=0),this._zooming=!0,this._rotating=qe!==Tt,this._pitching=Yt!==Xe,this._padding=!ee.isPaddingEqual(Kt),this._prepareEase(B,!1),this.terrain&&this._prepareElevation(be),this._ease(Cn=>{let Kn=Cn*ln,Ta=1/Pi(Kn);ee.zoom=Cn===1?De:le+ee.scaleZoom(Ta),this._rotating&&(ee.bearing=a.y.number(qe,Tt,Cn)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,Cn)),this._padding&&(ee.interpolatePadding(ot,Kt,Cn),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(Cn);let fa=Cn===1?be:ee.unproject(et.add(We.mult(cn(Kn))).mult(Ta));ee.setLocationAtPoint(ee.renderWorldCopies?fa.wrap():fa,Ir),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 La={compact:!0,customAttribution:'
MapLibre'};class Na{constructor(w=La){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 le=B[ee];if(le.used||le.usedForTerrain){let qe=le.getSource();qe.attribution&&w.indexOf(qe.attribution)<0&&w.push(qe.attribution)}}w=w.filter(ee=>String(ee).trim()),w.sort((ee,le)=>ee.length-le.length),w=w.filter((ee,le)=>{for(let qe=le+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 Yn{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 Dn{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 Ka=a.Y([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class bo 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 Vt(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 le=w.clone();le.posMatrix=new Float64Array(16),a.aP(le.posMatrix,0,a.X,0,a.X,0,1),B[Q]=le}else if(ee.canonical.isChildOf(w.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=ee.canonical.z-w.canonical.z,Xe=ee.canonical.x-(ee.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,Tt,0,Tt,0,1),a.J(le.posMatrix,le.posMatrix,[-Xe*Tt,-ot*Tt,0]),B[Q]=le}else if(w.canonical.isChildOf(ee.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=w.canonical.z-ee.canonical.z,Xe=w.canonical.x-(w.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,a.X,0,a.X,0,1),a.J(le.posMatrix,le.posMatrix,[Xe*Tt,ot*Tt,0]),a.K(le.posMatrix,le.posMatrix,[1/2**qe,1/2**qe,0]),B[Q]=le}}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&&(!le||!le.dem);)le=this.sourceCache.getTileByID(w.scaledTo(ee--).key);return le}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 bo(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 le;if(!(B>=0&&B=0&&Qw.canonical.z&&(w.canonical.z>=ee?le=w.canonical.z-ee:a.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));let qe=w.canonical.x-(w.canonical.x>>le<>le<>8<<4|le>>8,B[qe+3]=0;let Q=new a.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(B.buffer)),ee=new g(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,le=Math.round(w.x*this.painter.pixelRatio/devicePixelRatio),qe=Math.round(w.y*this.painter.pixelRatio/devicePixelRatio),Xe=Math.round(this.painter.height/devicePixelRatio);Q.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),ee.readPixels(le,Xe-qe-1,1,1,ee.RGBA,ee.UNSIGNED_BYTE,B),Q.bindFramebuffer.set(null);let ot=B[0]+(B[2]>>4<<8),Tt=B[1]+((15&B[2])<<8),Yt=this.coordsIndex[255-B[3]],Kt=Yt&&this.sourceCache.getTileByID(Yt);if(!Kt)return null;let xr=this._coordsTextureSize,Ir=(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 as={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ws{constructor(w,B){this.painter=w,this.terrain=B,this.pool=new Ss(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 le of ee){let qe=this.terrain.sourceCache.getTerrainCoords(le);for(let Xe in qe)this._coordsDescendingInv[Q][Xe]||(this._coordsDescendingInv[Q][Xe]=[]),this._coordsDescendingInv[Q][Xe].push(qe[Xe])}}this._coordsDescendingInvStr={};for(let Q of w._order){let ee=w._layers[Q],le=ee.source;if(as[ee.type]&&!this._coordsDescendingInvStr[le]){this._coordsDescendingInvStr[le]={};for(let qe in this._coordsDescendingInv[le])this._coordsDescendingInvStr[le][qe]=this._coordsDescendingInv[le][qe].map(Xe=>Xe.key).sort().join()}}for(let Q of this._renderableTiles)for(let ee in this._coordsDescendingInvStr){let le=this._coordsDescendingInvStr[ee][Q.tileID.key];le&&le!==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(as[B]&&(this._prevType&&as[this._prevType]||this._stacks.push([]),this._prevType=B,this._stacks[this._stacks.length-1].push(w.id),!ee))return!0;if(as[this._prevType]||as[B]&&ee){this._prevType=B;let le=this._stacks.length-1,qe=this._stacks[le]||[];for(let Xe of this._renderableTiles){if(this.pool.isFull()&&(js(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(Xe),Xe.rtt[le]){let Tt=this.pool.getObjectForId(Xe.rtt[le].id);if(Tt.stamp===Xe.rtt[le].stamp){this.pool.useObject(Tt);continue}}let ot=this.pool.getOrCreateFreeObject();this.pool.useObject(ot),this.pool.stampObject(ot),Xe.rtt[le]={id:ot.id,stamp:ot.stamp},Q.context.bindFramebuffer.set(ot.fbo.framebuffer),Q.context.clear({color:a.aM.transparent,stencil:0}),Q.currentStencilSource=void 0;for(let Tt=0;Tt{ue.touchstart=ue.dragStart,ue.touchmoveWindow=ue.dragMove,ue.touchend=ue.dragEnd},va={showCompass:!0,showZoom:!0,visualizePitch:!1};class no{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(),le=w.dragRotate._mousePitch.getClickTolerance();this.element=B,this.mouseRotate=Wl({clickTolerance:ee,enable:!0}),this.touchRotate=(({enable:qe,clickTolerance:Xe,bearingDegreesPerPixelMoved:ot=.8})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({bearingDelta:(Kt.x-Yt.x)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:ee,enable:!0}),this.map=w,Q&&(this.mousePitch=ah({clickTolerance:le,enable:!0}),this.touchPitch=(({enable:qe,clickTolerance:Xe,pitchDegreesPerPixelMoved:ot=-.5})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({pitchDelta:(Kt.y-Yt.y)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:le,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:le}=this.mousePitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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:le}=this.touchPitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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 ys;function rs(ue,w,B){let Q=new a.N(ue.lng,ue.lat);if(ue=new a.N(ue.lng,ue.lat),w){let ee=new a.N(ue.lng-360,ue.lat),le=new a.N(ue.lng+360,ue.lat),qe=B.locationPoint(ue).distSqr(w);B.locationPoint(ee).distSqr(w)180;){let ee=B.locationPoint(ue);if(ee.x>=0&&ee.y>=0&&ee.x<=B.width&&ee.y<=B.height)break;ue.lng>B.center.lng?ue.lng-=360:ue.lng+=360}return ue.lng!==Q.lng&&B.locationPoint(ue).y>B.height/2-B.getHorizon()?ue:Q}let $l={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 Cu(ue,w,B){let Q=ue.classList;for(let ee in $l)Q.remove(`maplibregl-${B}-anchor-${ee}`);Q.add(`maplibregl-${B}-anchor-${w}`)}class Yu 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?rs(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 le=\"\";this._rotationAlignment===\"viewport\"||this._rotationAlignment===\"auto\"?le=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===\"map\"&&(le=`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,`${$l[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${qe} ${le}`),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 le=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");le.setAttributeNS(null,\"stroke\",\"none\"),le.setAttributeNS(null,\"stroke-width\",\"1\"),le.setAttributeNS(null,\"fill\",\"none\"),le.setAttributeNS(null,\"fill-rule\",\"evenodd\");let qe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");qe.setAttributeNS(null,\"fill-rule\",\"nonzero\");let Xe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Xe.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),Xe.setAttributeNS(null,\"fill\",\"#000000\");let ot=[{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 Be of ot){let et=c.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");et.setAttributeNS(null,\"opacity\",\"0.04\"),et.setAttributeNS(null,\"cx\",\"10.5\"),et.setAttributeNS(null,\"cy\",\"5.80029008\"),et.setAttributeNS(null,\"rx\",Be.rx),et.setAttributeNS(null,\"ry\",Be.ry),Xe.appendChild(et)}let Tt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Tt.setAttributeNS(null,\"fill\",this._color);let Yt=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");Yt.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\"),Tt.appendChild(Yt);let Kt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Kt.setAttributeNS(null,\"opacity\",\"0.25\"),Kt.setAttributeNS(null,\"fill\",\"#000000\");let xr=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");xr.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\"),Kt.appendChild(xr);let Ir=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Ir.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),Ir.setAttributeNS(null,\"fill\",\"#FFFFFF\");let ve=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");ve.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 De=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");De.setAttributeNS(null,\"fill\",\"#FFFFFF\"),De.setAttributeNS(null,\"cx\",\"5.5\"),De.setAttributeNS(null,\"cy\",\"5.5\"),De.setAttributeNS(null,\"r\",\"5.4999962\"),ve.appendChild(be),ve.appendChild(De),qe.appendChild(Xe),qe.appendChild(Tt),qe.appendChild(Kt),qe.appendChild(Ir),qe.appendChild(ve),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()}),Cu(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,le=ee.terrain.depthAtPoint(this._pos),qe=ee.terrain.getElevationForLngLatZoom(this._lngLat,ee.transform.tileZoom);if(ee.transform.lngLatToCameraDepth(this._lngLat,qe)-le<.006)return void(this._element.style.opacity=this._opacity);let Xe=-this._offset.y/ee.transform._pixelPerMeter,ot=Math.sin(ee.getPitch()*Math.PI/180)*Xe,Tt=ee.terrain.depthAtPoint(new a.P(this._pos.x,this._pos.y-this._offset.y)),Yt=ee.transform.lngLatToCameraDepth(this._lngLat,qe+ot)-Tt>.006;!((Q=this._popup)===null||Q===void 0)&&Q.isOpen()&&Yt&&this._popup.remove(),this._element.style.opacity=Yt?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 Nc={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},pu=0,Uc=!1,xu={maxWidth:100,unit:\"metric\"};function Ac(ue,w,B){let Q=B&&B.maxWidth||100,ee=ue._container.clientHeight/2,le=ue.unproject([0,ee]),qe=ue.unproject([Q,ee]),Xe=le.distanceTo(qe);if(B&&B.unit===\"imperial\"){let ot=3.2808*Xe;ot>5280?Ua(w,Q,ot/5280,ue._getUIString(\"ScaleControl.Miles\")):Ua(w,Q,ot,ue._getUIString(\"ScaleControl.Feet\"))}else B&&B.unit===\"nautical\"?Ua(w,Q,Xe/1852,ue._getUIString(\"ScaleControl.NauticalMiles\")):Xe>=1e3?Ua(w,Q,Xe/1e3,ue._getUIString(\"ScaleControl.Kilometers\")):Ua(w,Q,Xe,ue._getUIString(\"ScaleControl.Meters\"))}function Ua(ue,w,B,Q){let ee=function(le){let qe=Math.pow(10,`${Math.floor(le)}`.length-1),Xe=le/qe;return Xe=Xe>=10?10:Xe>=5?5:Xe>=3?3:Xe>=2?2:Xe>=1?1:function(ot){let Tt=Math.pow(10,Math.ceil(-Math.log(ot)/Math.LN10));return Math.round(ot*Tt)/Tt}(Xe),qe*Xe}(B);ue.style.width=w*(ee/B)+\"px\",ue.innerHTML=`${ee} ${Q}`}let oo={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\",subpixelPositioning:!1},Vc=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function hc(ue){if(ue){if(typeof ue==\"number\"){let w=Math.round(Math.abs(ue)/Math.SQRT2);return{center:new a.P(0,0),top:new a.P(0,ue),\"top-left\":new a.P(w,w),\"top-right\":new a.P(-w,w),bottom:new a.P(0,-ue),\"bottom-left\":new a.P(w,-w),\"bottom-right\":new a.P(-w,-w),left:new a.P(ue,0),right:new a.P(-ue,0)}}if(ue instanceof a.P||Array.isArray(ue)){let w=a.P.convert(ue);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(ue.center||[0,0]),top:a.P.convert(ue.top||[0,0]),\"top-left\":a.P.convert(ue[\"top-left\"]||[0,0]),\"top-right\":a.P.convert(ue[\"top-right\"]||[0,0]),bottom:a.P.convert(ue.bottom||[0,0]),\"bottom-left\":a.P.convert(ue[\"bottom-left\"]||[0,0]),\"bottom-right\":a.P.convert(ue[\"bottom-right\"]||[0,0]),left:a.P.convert(ue.left||[0,0]),right:a.P.convert(ue.right||[0,0])}}return hc(new a.P(0,0))}let Ku=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=Na,i.BoxZoomHandler=ku,i.CanvasSource=Jt,i.CooperativeGesturesHandler=Qi,i.DoubleClickZoomHandler=ki,i.DragPanHandler=wn,i.DragRotateHandler=Nn,i.EdgeInsets=hu,i.FullscreenControl=class extends a.E{constructor(ue={}){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,ue&&ue.container&&(ue.container instanceof HTMLElement?this._container=ue.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(ue){return this._map=ue,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 ue=this._fullscreenButton=c.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);c.create(\"span\",\"maplibregl-ctrl-icon\",ue).setAttribute(\"aria-hidden\",\"true\"),ue.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let ue=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",ue),this._fullscreenButton.title=ue}_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=st,i.GeolocateControl=class extends a.E{constructor(ue){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(),le=a.e({bearing:ee},this.options.fitBoundsOptions),qe=ce.fromLngLat(B,Q);this._map.fitBounds(qe,le,{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&&Uc)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 Yu({element:this._dotElement}),this._circleElement=c.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Yu({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({},Nc,ue)}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),function(){return a._(this,arguments,void 0,function*(w=!1){if(ys!==void 0&&!w)return ys;if(window.navigator.permissions===void 0)return ys=!!window.navigator.geolocation,ys;try{ys=(yield window.navigator.permissions.query({name:\"geolocation\"})).state!==\"denied\"}catch(B){ys=!!window.navigator.geolocation}return ys})}().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,pu=0,Uc=!1}_isOutOfMapMaxBounds(ue){let w=this._map.getMaxBounds(),B=ue.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 ue=this._map.getBounds(),w=ue.getSouthEast(),B=ue.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\":pu--,Uc=!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 ue;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),pu++,pu>1?(ue={maximumAge:6e5,timeout:0},Uc=!0):(ue=this.options.positionOptions,Uc=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,ue)}}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=Ah,i.ImageSource=Gt,i.KeyboardHandler=Wt,i.LngLatBounds=ce,i.LogoControl=Yn,i.Map=class extends Ra{constructor(ue){a.bf.mark(a.bg.create);let w=Object.assign(Object.assign({},Ws),ue);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 nl(w.minZoom,w.maxZoom,w.minPitch,w.maxPitch,w.renderWorldCopies),{bearingSnap:w.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new Dn,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({},Ho),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=p.addThrottleControl(()=>this.isMoving()),this._requestManager=new k(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=nh(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 Ca(this,w),this._hash=w.hash&&new Ah(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 Na(typeof w.attributionControl==\"boolean\"?void 0:w.attributionControl)),w.maplibreLogo&&this.addControl(new Yn,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(ue,w){if(w===void 0&&(w=ue.getDefaultPosition?ue.getDefaultPosition():\"top-right\"),!ue||!ue.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=ue.onAdd(this);this._controls.push(ue);let Q=this._controlPositions[w];return w.indexOf(\"bottom\")!==-1?Q.insertBefore(B,Q.firstChild):Q.appendChild(B),this}removeControl(ue){if(!ue||!ue.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(ue);return w>-1&&this._controls.splice(w,1),ue.onRemove(this),this}hasControl(ue){return this._controls.indexOf(ue)>-1}calculateCameraOptionsFromTo(ue,w,B,Q){return Q==null&&this.terrain&&(Q=this.terrain.getElevationForLngLatZoom(B,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(ue,w,B,Q)}resize(ue){var w;let B=this._containerDimensions(),Q=B[0],ee=B[1],le=this._getClampedPixelRatio(Q,ee);if(this._resizeCanvas(Q,ee,le),this.painter.resize(Q,ee,le),this.painter.overLimit()){let Xe=this.painter.context.gl;this._maxCanvasSize=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];let ot=this._getClampedPixelRatio(Q,ee);this._resizeCanvas(Q,ee,ot),this.painter.resize(Q,ee,ot)}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\",ue)).fire(new a.k(\"move\",ue))),this.fire(new a.k(\"resize\",ue)),qe&&this.fire(new a.k(\"moveend\",ue)),this}_getClampedPixelRatio(ue,w){let{0:B,1:Q}=this._maxCanvasSize,ee=this.getPixelRatio(),le=ue*ee,qe=w*ee;return Math.min(le>B?B/le:1,qe>Q?Q/qe:1)*ee}getPixelRatio(){var ue;return(ue=this._overridePixelRatio)!==null&&ue!==void 0?ue:devicePixelRatio}setPixelRatio(ue){this._overridePixelRatio=ue,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(ue){return this.transform.setMaxBounds(ce.convert(ue)),this._update()}setMinZoom(ue){if((ue=ue==null?-2:ue)>=-2&&ue<=this.transform.maxZoom)return this.transform.minZoom=ue,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=ue,this._update(),this.getZoom()>ue&&this.setZoom(ue),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(ue){if((ue=ue==null?0:ue)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(ue>=0&&ue<=this.transform.maxPitch)return this.transform.minPitch=ue,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(ue>=this.transform.minPitch)return this.transform.maxPitch=ue,this._update(),this.getPitch()>ue&&this.setPitch(ue),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(ue){return this.transform.renderWorldCopies=ue,this._update()}project(ue){return this.transform.locationPoint(a.N.convert(ue),this.style&&this.terrain)}unproject(ue){return this.transform.pointLocation(a.P.convert(ue),this.terrain)}isMoving(){var ue;return this._moving||((ue=this.handlers)===null||ue===void 0?void 0:ue.isMoving())}isZooming(){var ue;return this._zooming||((ue=this.handlers)===null||ue===void 0?void 0:ue.isZooming())}isRotating(){var ue;return this._rotating||((ue=this.handlers)===null||ue===void 0?void 0:ue.isRotating())}_createDelegatedListener(ue,w,B){if(ue===\"mouseenter\"||ue===\"mouseover\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:le=>{let qe=w.filter(ot=>this.getLayer(ot)),Xe=qe.length!==0?this.queryRenderedFeatures(le.point,{layers:qe}):[];Xe.length?Q||(Q=!0,B.call(this,new jl(ue,this,le.originalEvent,{features:Xe}))):Q=!1},mouseout:()=>{Q=!1}}}}if(ue===\"mouseleave\"||ue===\"mouseout\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:qe=>{let Xe=w.filter(ot=>this.getLayer(ot));(Xe.length!==0?this.queryRenderedFeatures(qe.point,{layers:Xe}):[]).length?Q=!0:Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))},mouseout:qe=>{Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))}}}}{let Q=ee=>{let le=w.filter(Xe=>this.getLayer(Xe)),qe=le.length!==0?this.queryRenderedFeatures(ee.point,{layers:le}):[];qe.length&&(ee.features=qe,B.call(this,ee),delete ee.features)};return{layers:w,listener:B,delegates:{[ue]:Q}}}}_saveDelegatedListener(ue,w){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[ue]=this._delegatedListeners[ue]||[],this._delegatedListeners[ue].push(w)}_removeDelegatedListener(ue,w,B){if(!this._delegatedListeners||!this._delegatedListeners[ue])return;let Q=this._delegatedListeners[ue];for(let ee=0;eew.includes(qe))){for(let qe in le.delegates)this.off(qe,le.delegates[qe]);return void Q.splice(ee,1)}}}on(ue,w,B){if(B===void 0)return super.on(ue,w);let Q=this._createDelegatedListener(ue,typeof w==\"string\"?[w]:w,B);this._saveDelegatedListener(ue,Q);for(let ee in Q.delegates)this.on(ee,Q.delegates[ee]);return this}once(ue,w,B){if(B===void 0)return super.once(ue,w);let Q=typeof w==\"string\"?[w]:w,ee=this._createDelegatedListener(ue,Q,B);for(let le in ee.delegates){let qe=ee.delegates[le];ee.delegates[le]=(...Xe)=>{this._removeDelegatedListener(ue,Q,B),qe(...Xe)}}this._saveDelegatedListener(ue,ee);for(let le in ee.delegates)this.once(le,ee.delegates[le]);return this}off(ue,w,B){return B===void 0?super.off(ue,w):(this._removeDelegatedListener(ue,typeof w==\"string\"?[w]:w,B),this)}queryRenderedFeatures(ue,w){if(!this.style)return[];let B,Q=ue instanceof a.P||Array.isArray(ue),ee=Q?ue:[[0,0],[this.transform.width,this.transform.height]];if(w=w||(Q?{}:ue)||{},ee instanceof a.P||typeof ee[0]==\"number\")B=[a.P.convert(ee)];else{let le=a.P.convert(ee[0]),qe=a.P.convert(ee[1]);B=[le,new a.P(qe.x,le.y),qe,new a.P(le.x,qe.y),le]}return this.style.queryRenderedFeatures(B,w,this.transform)}querySourceFeatures(ue,w){return this.style.querySourceFeatures(ue,w)}setStyle(ue,w){return(w=a.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},w)).diff!==!1&&w.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&ue?(this._diffStyle(ue,w),this):(this._localIdeographFontFamily=w.localIdeographFontFamily,this._updateStyle(ue,w))}setTransformRequest(ue){return this._requestManager.setTransformRequest(ue),this}_getUIString(ue){let w=this._locale[ue];if(w==null)throw new Error(`Missing UI string '${ue}'`);return w}_updateStyle(ue,w){if(w.transformStyle&&this.style&&!this.style._loaded)return void this.style.once(\"style.load\",()=>this._updateStyle(ue,w));let B=this.style&&w.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!ue)),ue?(this.style=new Ga(this,w||{}),this.style.setEventedParent(this,{style:this.style}),typeof ue==\"string\"?this.style.loadURL(ue,w,B):this.style.loadJSON(ue,w,B),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ga(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(ue,w){if(typeof ue==\"string\"){let B=this._requestManager.transformRequest(ue,\"Style\");a.h(B,new AbortController).then(Q=>{this._updateDiff(Q.data,w)}).catch(Q=>{Q&&this.fire(new a.j(Q))})}else typeof ue==\"object\"&&this._updateDiff(ue,w)}_updateDiff(ue,w){try{this.style.setState(ue,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(ue,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(ue,w){return this._lazyInitEmptyStyle(),this.style.addSource(ue,w),this._update(!0)}isSourceLoaded(ue){let w=this.style&&this.style.sourceCaches[ue];if(w!==void 0)return w.loaded();this.fire(new a.j(new Error(`There is no source with ID '${ue}'`)))}setTerrain(ue){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),ue){let w=this.style.sourceCaches[ue.source];if(!w)throw new Error(`cannot load terrain, because there exists no source with ID: ${ue.source}`);this.terrain===null&&w.reload();for(let B in this.style._layers){let Q=this.style._layers[B];Q.type===\"hillshade\"&&Q.source===ue.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,ue),this.painter.renderToTexture=new ws(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!==ue.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:ue})),this}getTerrain(){var ue,w;return(w=(ue=this.terrain)===null||ue===void 0?void 0:ue.options)!==null&&w!==void 0?w:null}areTilesLoaded(){let ue=this.style&&this.style.sourceCaches;for(let w in ue){let B=ue[w]._tiles;for(let Q in B){let ee=B[Q];if(ee.state!==\"loaded\"&&ee.state!==\"errored\")return!1}}return!0}removeSource(ue){return this.style.removeSource(ue),this._update(!0)}getSource(ue){return this.style.getSource(ue)}addImage(ue,w,B={}){let{pixelRatio:Q=1,sdf:ee=!1,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt}=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:Yt,height:Kt,data:xr}=w,Ir=w;return this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},new Uint8Array(xr)),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0,userImage:Ir}),Ir.onAdd&&Ir.onAdd(this,ue),this}}{let{width:Yt,height:Kt,data:xr}=u.getImageData(w);this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},xr),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0})}}updateImage(ue,w){let B=this.style.getImage(ue);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:le,data:qe}=Q;if(ee===void 0||le===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||le!==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 Xe=!(w instanceof HTMLImageElement||a.b(w));return B.data.replace(qe,Xe),this.style.updateImage(ue,B),this}getImage(ue){return this.style.getImage(ue)}hasImage(ue){return ue?!!this.style.getImage(ue):(this.fire(new a.j(new Error(\"Missing required image id\"))),!1)}removeImage(ue){this.style.removeImage(ue)}loadImage(ue){return p.getImage(this._requestManager.transformRequest(ue,\"Image\"),new AbortController)}listImages(){return this.style.listImages()}addLayer(ue,w){return this._lazyInitEmptyStyle(),this.style.addLayer(ue,w),this._update(!0)}moveLayer(ue,w){return this.style.moveLayer(ue,w),this._update(!0)}removeLayer(ue){return this.style.removeLayer(ue),this._update(!0)}getLayer(ue){return this.style.getLayer(ue)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(ue,w,B){return this.style.setLayerZoomRange(ue,w,B),this._update(!0)}setFilter(ue,w,B={}){return this.style.setFilter(ue,w,B),this._update(!0)}getFilter(ue){return this.style.getFilter(ue)}setPaintProperty(ue,w,B,Q={}){return this.style.setPaintProperty(ue,w,B,Q),this._update(!0)}getPaintProperty(ue,w){return this.style.getPaintProperty(ue,w)}setLayoutProperty(ue,w,B,Q={}){return this.style.setLayoutProperty(ue,w,B,Q),this._update(!0)}getLayoutProperty(ue,w){return this.style.getLayoutProperty(ue,w)}setGlyphs(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(ue,w),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(ue,w,B={}){return this._lazyInitEmptyStyle(),this.style.addSprite(ue,w,B,Q=>{Q||this._update(!0)}),this}removeSprite(ue){return this._lazyInitEmptyStyle(),this.style.removeSprite(ue),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setSprite(ue,w,B=>{B||this._update(!0)}),this}setLight(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setLight(ue,w),this._update(!0)}getLight(){return this.style.getLight()}setSky(ue){return this._lazyInitEmptyStyle(),this.style.setSky(ue),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(ue,w){return this.style.setFeatureState(ue,w),this._update()}removeFeatureState(ue,w){return this.style.removeFeatureState(ue,w),this._update()}getFeatureState(ue){return this.style.getFeatureState(ue)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let ue=0,w=0;return this._container&&(ue=this._container.clientWidth||400,w=this._container.clientHeight||300),[ue,w]}_setupContainer(){let ue=this._container;ue.classList.add(\"maplibregl-map\");let w=this._canvasContainer=c.create(\"div\",\"maplibregl-canvas-container\",ue);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\",ue),le=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(qe=>{le[qe]=c.create(\"div\",`maplibregl-ctrl-${qe} `,ee)}),this._container.addEventListener(\"scroll\",this._onMapScroll,!1)}_resizeCanvas(ue,w,B){this._canvas.width=Math.floor(B*ue),this._canvas.height=Math.floor(B*w),this._canvas.style.width=`${ue}px`,this._canvas.style.height=`${w}px`}_setupPainter(){let ue={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:ue},Q&&(w.statusMessage=Q.statusMessage,w.type=Q.type)},{once:!0});let B=this._canvas.getContext(\"webgl2\",ue)||this._canvas.getContext(\"webgl\",ue);if(!B){let Q=\"Failed to initialize WebGL\";throw w?(w.message=Q,new Error(JSON.stringify(w))):new Error(Q)}this.painter=new Dc(B,this.transform),f.testSupport(B)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(ue){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||ue,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(ue){return this._update(),this._renderTaskQueue.add(ue)}_cancelRenderFrame(ue){this._renderTaskQueue.remove(ue)}_render(ue){let w=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(ue),this._removed)return;let B=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let ee=this.transform.zoom,le=u.now();this.style.zoomHistory.update(ee,le);let qe=new a.z(ee,{now:le,fadeDuration:w,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),Xe=qe.crossFadingFactor();Xe===1&&Xe===this._crossFadingFactor||(B=!0,this._crossFadingFactor=Xe),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 ue;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),p.removeThrottleControl(this._imageQueueHandle),(ue=this._resizeObserver)===null||ue===void 0||ue.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(ue=>{a.bf.frame(ue),this._frameRequest=null,this._render(ue)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(ue){this._showTileBoundaries!==ue&&(this._showTileBoundaries=ue,this._update())}get showPadding(){return!!this._showPadding}set showPadding(ue){this._showPadding!==ue&&(this._showPadding=ue,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(ue){this._showCollisionBoxes!==ue&&(this._showCollisionBoxes=ue,ue?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(ue){this._showOverdrawInspector!==ue&&(this._showOverdrawInspector=ue,this._update())}get repaint(){return!!this._repaint}set repaint(ue){this._repaint!==ue&&(this._repaint=ue,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(ue){this._vertices=ue,this._update()}get version(){return ml}getCameraTargetElevation(){return this.transform.elevation}},i.MapMouseEvent=jl,i.MapTouchEvent=lf,i.MapWheelEvent=Hh,i.Marker=Yu,i.NavigationControl=class{constructor(ue){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({},va,ue),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(ue){return this._map=ue,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 no(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(ue,w){let B=c.create(\"button\",ue,this._container);return B.type=\"button\",B.addEventListener(\"click\",w),B}},i.Popup=class extends a.E{constructor(ue){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 Xe of this.options.className.split(\" \"))this._container.classList.add(Xe);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?rs(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,le=hc(this.options.offset);if(!ee){let Xe=this._container.offsetWidth,ot=this._container.offsetHeight,Tt;Tt=Q.y+le.bottom.ythis._map.transform.height-ot?[\"bottom\"]:[],Q.xthis._map.transform.width-Xe/2&&Tt.push(\"right\"),ee=Tt.length===0?\"bottom\":Tt.join(\"-\")}let qe=Q.add(le[ee]);this.options.subpixelPositioning||(qe=qe.round()),c.setTransform(this._container,`${$l[ee]} translate(${qe.x}px,${qe.y}px)`),Cu(this._container,ee,\"popup\")},this._onClose=()=>{this.remove()},this.options=a.e(Object.create(oo),ue)}addTo(ue){return this._map&&this.remove(),this._map=ue,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(ue){return this._lngLat=a.N.convert(ue),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(ue){return this.setDOMContent(document.createTextNode(ue))}setHTML(ue){let w=document.createDocumentFragment(),B=document.createElement(\"body\"),Q;for(B.innerHTML=ue;Q=B.firstChild,Q;)w.appendChild(Q);return this.setDOMContent(w)}getMaxWidth(){var ue;return(ue=this._container)===null||ue===void 0?void 0:ue.style.maxWidth}setMaxWidth(ue){return this.options.maxWidth=ue,this._update(),this}setDOMContent(ue){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(ue),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(ue){return this._container&&this._container.classList.add(ue),this}removeClassName(ue){return this._container&&this._container.classList.remove(ue),this}setOffset(ue){return this.options.offset=ue,this._update(),this}toggleClassName(ue){if(this._container)return this._container.classList.toggle(ue)}setSubpixelPositioning(ue){this.options.subpixelPositioning=ue}_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 ue=this._container.querySelector(Vc);ue&&ue.focus()}},i.RasterDEMTileSource=Zt,i.RasterTileSource=pt,i.ScaleControl=class{constructor(ue){this._onMove=()=>{Ac(this._map,this._container,this.options)},this.setUnit=w=>{this.options.unit=w,Ac(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},xu),ue)}getDefaultPosition(){return\"bottom-left\"}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",ue.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=Kr,i.Style=Ga,i.TerrainControl=class{constructor(ue){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=ue}onAdd(ue){return this._map=ue,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=Bc,i.TwoFingersTouchRotateHandler=cf,i.TwoFingersTouchZoomHandler=vu,i.TwoFingersTouchZoomRotateHandler=Yi,i.VectorTileSource=ut,i.VideoSource=Nt,i.addSourceType=(ue,w)=>a._(void 0,void 0,void 0,function*(){if(wr(ue))throw new Error(`A source type called \"${ue}\" already exists.`);((B,Q)=>{sr[B]=Q})(ue,w)}),i.clearPrewarmedResources=function(){let ue=me;ue&&(ue.isPreloaded()&&ue.numActive()===1?(ue.release(_e),me=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 Qt().getRTLTextPluginStatus()},i.getVersion=function(){return Ku},i.getWorkerCount=function(){return Ee.workerCount},i.getWorkerUrl=function(){return a.a.WORKER_URL},i.importScriptInWorkers=function(ue){return Ae().broadcast(\"IS\",ue)},i.prewarm=function(){Se().acquire(_e)},i.setMaxParallelImageRequests=function(ue){a.a.MAX_PARALLEL_IMAGE_REQUESTS=ue},i.setRTLTextPlugin=function(ue,w){return Qt().setRTLTextPlugin(ue,w)},i.setWorkerCount=function(ue){Ee.workerCount=ue},i.setWorkerUrl=function(ue){a.a.WORKER_URL=ue}});var n=e;return n})});var cje=ye((Ebr,uje)=>{\"use strict\";var nw=Dr(),AXt=ru().sanitizeHTML,SXt=AJ(),oje=wx();function sje(e,t){this.subplot=e,this.uid=e.uid+\"-\"+t,this.index=t,this.idSource=\"source-\"+this.uid,this.idLayer=oje.layoutLayerPrefix+this.uid,this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var ag=sje.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=u7(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,!!u7(e)){var r=MXt(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 lje(e){var t={},r={};switch(e.type){case\"circle\":nw.extendFlat(r,{\"circle-radius\":e.circle.radius,\"circle-color\":e.color,\"circle-opacity\":e.opacity});break;case\"line\":nw.extendFlat(r,{\"line-width\":e.line.width,\"line-color\":e.color,\"line-opacity\":e.opacity,\"line-dasharray\":e.line.dash});break;case\"fill\":nw.extendFlat(r,{\"fill-color\":e.color,\"fill-outline-color\":e.fill.outlinecolor,\"fill-opacity\":e.opacity});break;case\"symbol\":var n=e.symbol,i=SXt(n.textposition,n.iconsize);nw.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}),nw.extendFlat(r,{\"icon-color\":e.color,\"text-color\":n.textfont.color,\"text-opacity\":e.opacity});break;case\"raster\":nw.extendFlat(r,{\"raster-fade-duration\":0,\"raster-opacity\":e.opacity});break}return{layout:t,paint:r}}function MXt(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=AXt(e.sourceattribution)),n}uje.exports=function(t,r,n){var i=new sje(t,r);return i.update(n),i}});var yje=ye((kbr,mje)=>{\"use strict\";var LJ=aje(),PJ=Dr(),dje=ix(),fje=qa(),EXt=ho(),kXt=yv(),c7=vf(),vje=Mg(),CXt=vje.drawMode,LXt=vje.selectMode,PXt=Of().prepSelect,IXt=Of().clearOutline,RXt=Of().clearSelectionsCache,DXt=Of().selectOnClick,aw=wx(),FXt=cje();function pje(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 Uh=pje.prototype;Uh.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)};Uh.createMap=function(e,t,r,n){var i=this,a=t[i.id],o=i.styleObj=gje(a.style),s=a.bounds,l=s?[[s.west,s.south],[s.east,s.north]]:null,u=i.map=new LJ.Map({container:i.div,style:o.style,center:IJ(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 LJ.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(dje.fetchTraceGeoData(e)),Promise.all(f).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.updateMap=function(e,t,r,n){var i=this,a=i.map,o=t[this.id];i.rejectOnError(n);var s=[],l=gje(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(dje.fetchTraceGeoData(e)),Promise.all(s).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.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&&DXt(l.originalEvent,n,[r.xaxis],[r.yaxis],r.id,s),u.indexOf(\"event\")>-1&&c7.click(n,l.originalEvent)}}};Uh.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=PJ.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),LXt(a)||CXt(a)?(r.dragPan.disable(),r.on(\"zoomstart\",t.clearOutline),t.dragOptions.prepFn=function(l,u,c){PXt(l,u,c,t.dragOptions,a)},kXt.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))};Uh.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])};Uh.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 RJ=Dr(),OXt=k_(),qXt=Yd(),_je=jk();xje.exports=function(t,r,n){OXt(t,r,n,{type:\"map\",attributes:_je,handleDefaults:BXt,partition:\"y\"})};function BXt(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,qXt(e,t,{name:\"layers\",handleItemDefaults:NXt}),t._input=e}function NXt(e,t){function r(l,u){return RJ.coerce(e,t,_je.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\",RJ.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\"),RJ.coerceFont(r,\"symbol.textfont\",void 0,{noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0}),r(\"symbol.textposition\"),r(\"symbol.placement\"))}}});var h7=ye(l0=>{\"use strict\";var f7=Dr(),wje=f7.strTranslate,UXt=f7.strScale,VXt=Id().getSubplotCalcData,GXt=Wp(),HXt=Oa(),Tje=So(),jXt=ru(),WXt=yje(),Tx=\"map\";l0.name=Tx;l0.attr=\"subplot\";l0.idRoot=Tx;l0.idRegex=l0.attrRegex=f7.counterRegex(Tx);l0.attributes={subplot:{valType:\"subplotid\",dflt:\"map\",editType:\"calc\"}};l0.layoutAttributes=jk();l0.supplyLayoutDefaults=bje();l0.plot=function(t){for(var r=t._fullLayout,n=t.calcdata,i=r._subplots[Tx],a=0;a_/2){var b=f.split(\"|\").join(\"
\");d.text(b).attr(\"data-unformatted\",b).call(jXt.convertToTspans,e),v=Tje.bBox(d.node())}d.attr(\"transform\",wje(-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 p=1;v.width+6>_&&(p=_/(v.width+6));var k=[n.l+n.w*o.x[1],n.t+n.h*(1-o.y[0])];h.attr(\"transform\",wje(k[0],k[1])+UXt(p))}};l0.updateFx=function(e){for(var t=e._fullLayout,r=t._subplots[Tx],n=0;n{\"use strict\";Aje.exports={attributes:i7(),supplyDefaults:OHe(),colorbar:$d(),formatLabels:TJ(),calc:vF(),plot:JHe(),hoverPoints:l7().hoverPoints,eventData:tje(),selectPoints:ije(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.update(t)}},moduleType:\"trace\",name:\"scattermap\",basePlotModule:h7(),categories:[\"map\",\"gl\",\"symbols\",\"showLegend\",\"scatter-like\"],meta:{}}});var Eje=ye((Ibr,Mje)=>{\"use strict\";Mje.exports=Sje()});var DJ=ye((Rbr,kje)=>{\"use strict\";var d1=e5(),XXt=Tu(),{hovertemplateAttrs:ZXt,templatefallbackAttrs:YXt}=Ll(),KXt=Gl(),Ax=Ao().extendFlat;kje.exports=Ax({locations:{valType:\"data_array\",editType:\"calc\"},z:{valType:\"data_array\",editType:\"calc\"},geojson:{valType:\"any\",editType:\"calc\"},featureidkey:Ax({},d1.featureidkey,{}),below:{valType:\"string\",editType:\"plot\"},text:d1.text,hovertext:d1.hovertext,marker:{line:{color:Ax({},d1.marker.line.color,{editType:\"plot\"}),width:Ax({},d1.marker.line.width,{editType:\"plot\"}),editType:\"calc\"},opacity:Ax({},d1.marker.opacity,{editType:\"plot\"}),editType:\"calc\"},selected:{marker:{opacity:Ax({},d1.selected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},unselected:{marker:{opacity:Ax({},d1.unselected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},hoverinfo:d1.hoverinfo,hovertemplate:ZXt({},{keys:[\"properties\"]}),hovertemplatefallback:YXt(),showlegend:Ax({},KXt.showlegend,{dflt:!1})},XXt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Lje=ye((Dbr,Cje)=>{\"use strict\";var Yk=Dr(),JXt=Qh(),$Xt=DJ();Cje.exports=function(t,r,n,i){function a(c,f){return Yk.coerce(t,r,$Xt,c,f)}var o=a(\"locations\"),s=a(\"z\"),l=a(\"geojson\");if(!Yk.isArrayOrTypedArray(o)||!o.length||!Yk.isArrayOrTypedArray(s)||!s.length||!(typeof l==\"string\"&&l!==\"\"||Yk.isPlainObject(l))){r.visible=!1;return}a(\"featureidkey\"),r._length=Math.min(o.length,s.length),a(\"below\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\");var u=a(\"marker.line.width\");u&&a(\"marker.line.color\"),a(\"marker.opacity\"),JXt(t,r,i,a,{prefix:\"\",cLetter:\"z\"}),Yk.coerceSelectionMarkerOpacity(r,a)}});var FJ=ye((Fbr,Rje)=>{\"use strict\";var QXt=Eo(),v1=Dr(),eZt=tc(),tZt=So(),rZt=tx().makeBlank,Pje=ix();function iZt(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:rZt()};if(!r)return a;var o=Pje.extractTraceFeature(e);if(!o)return a;var s=eZt.makeColorScaleFuncFromTrace(t),l=t.marker,u=l.line||{},c;v1.isArrayOrTypedArray(l.opacity)&&(c=function(k){var E=k.mo;return QXt(E)?+v1.constrain(E,0,1):0});var f;v1.isArrayOrTypedArray(u.color)&&(f=function(k){return k.mlc});var h;v1.isArrayOrTypedArray(u.width)&&(h=function(k){return k.mlw});for(var d=0;d{\"use strict\";var Fje=FJ().convert,nZt=FJ().convertOnSelect,Dje=wx().traceLayerPrefix;function zje(e,t){this.type=\"choroplethmap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"fill\",Dje+t+\"-fill\"],[\"line\",Dje+t+\"-line\"]],this.below=null}var C5=zje.prototype;C5.update=function(e){this._update(Fje(e)),e[0].trace._glTrace=this};C5.updateOnSelect=function(e){this._update(nZt(e))};C5._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])};C5.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};Oje.exports=function(t,r){var n=r[0].trace,i=new zje(t,n.uid),a=i.sourceId,o=Fje(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 Nje=ye((Obr,Bje)=>{\"use strict\";Bje.exports={attributes:DJ(),supplyDefaults:Lje(),colorbar:S_(),calc:FF(),plot:qje(),hoverPoints:OF(),eventData:qF(),selectPoints:BF(),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\";Uje.exports=Nje()});var OJ=ye((Bbr,Hje)=>{\"use strict\";var aZt=Tu(),{hovertemplateAttrs:oZt,templatefallbackAttrs:sZt}=Ll(),Gje=Gl(),d7=i7(),zJ=Ao().extendFlat;Hje.exports=zJ({lon:d7.lon,lat:d7.lat,z:{valType:\"data_array\",editType:\"calc\"},radius:{valType:\"number\",editType:\"plot\",arrayOk:!0,min:1,dflt:30},below:{valType:\"string\",editType:\"plot\"},text:d7.text,hovertext:d7.hovertext,hoverinfo:zJ({},Gje.hoverinfo,{flags:[\"lon\",\"lat\",\"z\",\"text\",\"name\"]}),hovertemplate:oZt(),hovertemplatefallback:sZt(),showlegend:zJ({},Gje.showlegend,{dflt:!1})},aZt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Wje=ye((Nbr,jje)=>{\"use strict\";var lZt=Dr(),uZt=Qh(),cZt=OJ();jje.exports=function(t,r,n,i){function a(u,c){return lZt.coerce(t,r,cZt,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\"),a(\"hovertemplatefallback\"),uZt(t,r,i,a,{prefix:\"\",cLetter:\"z\"})}});var Yje=ye((Ubr,Zje)=>{\"use strict\";var qJ=Eo(),fZt=Dr().isArrayOrTypedArray,BJ=fs().BADNUM,hZt=gv(),Xje=Dr()._;Zje.exports=function(t,r){for(var n=r._length,i=new Array(n),a=r.z,o=fZt(a)&&a.length,s=0;s{\"use strict\";var dZt=Eo(),NJ=Dr(),Kje=ka(),Jje=tc(),$je=fs().BADNUM,vZt=tx().makeBlank;Qje.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:vZt()};if(!n)return a;var o=[],s,l=r.z,u=r.radius,c=NJ.isArrayOrTypedArray(l)&&l.length,f=NJ.isArrayOrTypedArray(u);for(s=0;s0?+u[s]:0),o.push({type:\"Feature\",geometry:{type:\"Point\",coordinates:d},properties:v})}}var b=Jje.extractOpts(r),p=b.reversescale?Jje.flipScale(b.colorscale):b.colorscale,k=p[0][1],E=Kje.opacity(k)<1?k:Kje.addOpacity(k,0),S=[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,E];for(s=1;s{\"use strict\";var tWe=eWe(),pZt=wx().traceLayerPrefix;function rWe(e,t){this.type=\"densitymap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"heatmap\",pZt+t+\"-heatmap\"]],this.below=null}var v7=rWe.prototype;v7.update=function(e){var t=this.subplot,r=this.layerList,n=tWe(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])};v7.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};iWe.exports=function(t,r){var n=r[0].trace,i=new rWe(t,n.uid),a=i.sourceId,o=tWe(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 oWe=ye((Hbr,aWe)=>{\"use strict\";var gZt=ho(),mZt=l7().hoverPoints,yZt=l7().getExtraText;aWe.exports=function(t,r,n){var i=mZt(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=gZt.tickText(u,u.c2l(l.z),\"hover\").text}return a.extraText=yZt(s,l,o[0].t.labels),[a]}}});var lWe=ye((jbr,sWe)=>{\"use strict\";sWe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t.z=r.z,t}});var cWe=ye((Wbr,uWe)=>{\"use strict\";uWe.exports={attributes:OJ(),supplyDefaults:Wje(),colorbar:S_(),formatLabels:TJ(),calc:Yje(),plot:nWe(),hoverPoints:oWe(),eventData:lWe(),getBelow:function(e,t){for(var r=t.getMapLayers(),n=0;n{\"use strict\";fWe.exports=cWe()});var VJ=ye((Ybr,mWe)=>{\"use strict\";var _Zt=ec(),xZt=Gl(),dWe=Lh(),UJ=n3(),bZt=Cc().attributes,{hovertemplateAttrs:vWe,templatefallbackAttrs:pWe}=Ll(),wZt=Tu(),TZt=vl().templatedArray,AZt=df().descriptionOnlyNumbers,gWe=Ao().extendFlat,SZt=mc().overrideAll,Zbr=mWe.exports=SZt({hoverinfo:gWe({},xZt.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:UJ.hoverlabel,domain:bZt({name:\"sankey\",trace:!0}),orientation:{valType:\"enumerated\",values:[\"v\",\"h\"],dflt:\"h\"},valueformat:{valType:\"string\",dflt:\".3s\",description:AZt(\"value\")},valuesuffix:{valType:\"string\",dflt:\"\"},arrangement:{valType:\"enumerated\",values:[\"snap\",\"perpendicular\",\"freeform\",\"fixed\"],dflt:\"snap\"},textfont:_Zt({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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),colorscales:TZt(\"concentrationscales\",{editType:\"calc\",label:{valType:\"string\",editType:\"calc\",dflt:\"\"},cmax:{valType:\"number\",editType:\"calc\",dflt:1},cmin:{valType:\"number\",editType:\"calc\",dflt:0},colorscale:gWe(wZt().colorscale,{dflt:[[0,\"white\"],[1,\"black\"]]})})}},\"calc\",\"nested\")});var wWe=ye((Kbr,bWe)=>{\"use strict\";var L5=Dr(),p7=VJ(),MZt=ka(),yWe=cd(),EZt=Cc().defaults,_We=fM(),xWe=vl(),kZt=Yd();bWe.exports=function(t,r,n,i){function a(S,L){return L5.coerce(t,r,p7,S,L)}var o=L5.extendDeep(i.hoverlabel,t.hoverlabel),s=t.node,l=xWe.newContainer(r,\"node\");function u(S,L){return L5.coerce(s,l,p7.node,S,L)}u(\"label\"),u(\"groups\"),u(\"x\"),u(\"y\"),u(\"pad\"),u(\"thickness\"),u(\"line.color\"),u(\"line.width\"),u(\"hoverinfo\",t.hoverinfo),_We(s,l,u,o),u(\"hovertemplate\"),u(\"align\");var c=i.colorway,f=function(S){return c[S%c.length]};u(\"color\",l.label.map(function(S,L){return MZt.addOpacity(f(L),.8)})),u(\"customdata\");var h=t.link||{},d=xWe.newContainer(r,\"link\");function v(S,L){return L5.coerce(h,d,p7.link,S,L)}v(\"label\"),v(\"arrowlen\"),v(\"source\"),v(\"target\"),v(\"value\"),v(\"line.color\"),v(\"line.width\"),v(\"hoverinfo\",t.hoverinfo),_We(h,d,v,o),v(\"hovertemplate\");var _=yWe(i.paper_bgcolor).getLuminance()<.333,b=_?\"rgba(255, 255, 255, 0.6)\":\"rgba(0, 0, 0, 0.2)\",p=v(\"color\",b);function k(S){var L=yWe(S);if(!L.isValid())return S;var x=L.getAlpha();return x<=.8?L.setAlpha(x+.2):L=_?L.brighten():L.darken(),L.toRgbString()}v(\"hovercolor\",Array.isArray(p)?p.map(k):k(p)),v(\"customdata\"),kZt(h,d,{name:\"colorscales\",handleItemDefaults:CZt}),EZt(r,i,a),a(\"orientation\"),a(\"valueformat\"),a(\"valuesuffix\");var E;l.x.length&&l.y.length&&(E=\"freeform\"),a(\"arrangement\",E),L5.coerceFont(a,\"textfont\",i.font,{autoShadowDflt:!0}),r._length=null};function CZt(e,t){function r(n,i){return L5.coerce(e,t,p7.link.colorscales,n,i)}r(\"label\"),r(\"cmin\"),r(\"cmax\"),r(\"colorscale\")}});var GJ=ye((Jbr,TWe)=>{\"use strict\";TWe.exports=LZt;function LZt(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=k[k.length-1];var E=e[b];if(a[b]=0&&s[b].push(o[L])}a[b]=S}else{if(n[b]===r[b]){for(var x=[],C=[],M=0,S=p.length-1;S>=0;--S){var g=p[S];if(i[g]=!1,x.push(g),C.push(s[g]),M+=s[g].length,o[g]=c.length,g===b){p.length=S;break}}c.push(x);for(var P=new Array(M),S=0;S{\"use strict\";var PZt=GJ(),P5=Dr(),IZt=Jm().wrap,Kk=P5.isArrayOrTypedArray,AWe=P5.isIndex,SWe=tc();function RZt(e){var t=e.node,r=e.link,n=[],i=Kk(r.color),a=Kk(r.hovercolor),o=Kk(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 _=v+1;e.node._count=_;var b,p=e.node.groups,k={};for(c=0;c0&&AWe(M,_)&&AWe(g,_)&&!(k.hasOwnProperty(M)&&k.hasOwnProperty(g)&&k[M]===k[g])){k.hasOwnProperty(g)&&(g=k[g]),k.hasOwnProperty(M)&&(M=k[M]),M=+M,g=+g,s[M]=s[g]=!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:g,value:+C}),x.source.push(M),x.target.push(g)}}var z=_+p.length,O=Kk(t.color),V=Kk(t.customdata),G=[];for(c=0;c_-1,childrenNodes:[],pointNumber:c,label:Z,color:O?t.color[c]:t.color,customdata:V?t.customdata[c]:t.customdata})}var H=!1;return DZt(z,x.source,x.target)&&(H=!0),{circular:H,links:n,nodes:G,groups:p,groupLookup:k}}function DZt(e,t,r){for(var n=P5.init2dArray(e,0),i=0;i1})}MWe.exports=function(t,r){var n=RZt(r);return IZt({circular:n.circular,_nodes:n.nodes,_links:n.links,_groups:n.groups,_groupLookup:n.groupLookup})}});var CWe=ye((g7,kWe)=>{(function(e,t){typeof g7==\"object\"&&typeof kWe!=\"undefined\"?t(g7):(e=e||self,t(e.d3=e.d3||{}))})(g7,function(e){\"use strict\";function t(C){var M=+this._x.call(null,C),g=+this._y.call(null,C);return r(this.cover(M,g),M,g,C)}function r(C,M,g,P){if(isNaN(M)||isNaN(g))return C;var T,z=C._root,O={data:P},V=C._x0,G=C._y0,Z=C._x1,H=C._y1,N,j,re,oe,_e,Ee,Ce,me;if(!z)return C._root=O,C;for(;z.length;)if((_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j,T=z,!(z=z[Ce=Ee<<1|_e]))return T[Ce]=O,C;if(re=+C._x.call(null,z.data),oe=+C._y.call(null,z.data),M===re&&g===oe)return O.next=z,T?T[Ce]=O:C._root=O,C;do T=T?T[Ce]=new Array(4):C._root=new Array(4),(_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j;while((Ce=Ee<<1|_e)===(me=(oe>=j)<<1|re>=N));return T[me]=z,T[Ce]=O,C}function n(C){var M,g,P=C.length,T,z,O=new Array(P),V=new Array(P),G=1/0,Z=1/0,H=-1/0,N=-1/0;for(g=0;gH&&(H=T),zN&&(N=z));if(G>H||Z>N)return this;for(this.cover(G,Z).cover(H,N),g=0;gC||C>=T||P>M||M>=z;)switch(Z=(MH||(V=oe.y0)>N||(G=oe.x1)=Ce)<<1|C>=Ee)&&(oe=j[j.length-1],j[j.length-1]=j[j.length-1-_e],j[j.length-1-_e]=oe)}else{var me=C-+this._x.call(null,re.data),ie=M-+this._y.call(null,re.data),Se=me*me+ie*ie;if(Se=(j=(O+G)/2))?O=j:G=j,(_e=N>=(re=(V+Z)/2))?V=re:Z=re,M=g,!(g=g[Ee=_e<<1|oe]))return this;if(!g.length)break;(M[Ee+1&3]||M[Ee+2&3]||M[Ee+3&3])&&(P=M,Ce=Ee)}for(;g.data!==C;)if(T=g,!(g=g.next))return this;return(z=g.next)&&delete g.next,T?(z?T.next=z:delete T.next,this):M?(z?M[Ee]=z:delete M[Ee],(g=M[0]||M[1]||M[2]||M[3])&&g===(M[3]||M[2]||M[1]||M[0])&&!g.length&&(P?P[Ce]=g:this._root=g),this):(this._root=z,this)}function c(C){for(var M=0,g=C.length;M{(function(e,t){t(typeof m7==\"object\"&&typeof LWe!=\"undefined\"?m7:e.d3=e.d3||{})})(m7,function(e){\"use strict\";var t=\"$\";function r(){}r.prototype=n.prototype={constructor:r,has:function(_){return t+_ in this},get:function(_){return this[t+_]},set:function(_,b){return this[t+_]=b,this},remove:function(_){var b=t+_;return b in this&&delete this[b]},clear:function(){for(var _ in this)_[0]===t&&delete this[_]},keys:function(){var _=[];for(var b in this)b[0]===t&&_.push(b.slice(1));return _},values:function(){var _=[];for(var b in this)b[0]===t&&_.push(this[b]);return _},entries:function(){var _=[];for(var b in this)b[0]===t&&_.push({key:b.slice(1),value:this[b]});return _},size:function(){var _=0;for(var b in this)b[0]===t&&++_;return _},empty:function(){for(var _ in this)if(_[0]===t)return!1;return!0},each:function(_){for(var b in this)b[0]===t&&_(this[b],b.slice(1),this)}};function n(_,b){var p=new r;if(_ instanceof r)_.each(function(x,C){p.set(C,x)});else if(Array.isArray(_)){var k=-1,E=_.length,S;if(b==null)for(;++k=_.length)return p!=null&&x.sort(p),k!=null?k(x):x;for(var P=-1,T=x.length,z=_[C++],O,V,G=n(),Z,H=M();++P_.length)return x;var M,g=b[C-1];return k!=null&&C>=_.length?M=x.entries():(M=[],x.each(function(P,T){M.push({key:T,values:L(P,C)})})),g!=null?M.sort(function(P,T){return g(P.key,T.key)}):M}return E={object:function(x){return S(x,0,a,o)},map:function(x){return S(x,0,s,l)},entries:function(x){return L(S(x,0,s,l),0)},key:function(x){return _.push(x),E},sortKeys:function(x){return b[_.length-1]=x,E},sortValues:function(x){return p=x,E},rollup:function(x){return k=x,E}}}function a(){return{}}function o(_,b,p){_[b]=p}function s(){return n()}function l(_,b,p){_.set(b,p)}function u(){}var c=n.prototype;u.prototype=f.prototype={constructor:u,has:c.has,add:function(_){return _+=\"\",this[t+_]=_,this},remove:c.remove,clear:c.clear,values:c.keys,size:c.size,empty:c.empty,each:c.each};function f(_,b){var p=new u;if(_ instanceof u)_.each(function(S){p.add(S)});else if(_){var k=-1,E=_.length;if(b==null)for(;++k{(function(e,t){typeof _7==\"object\"&&typeof PWe!=\"undefined\"?t(_7):(e=e||self,t(e.d3=e.d3||{}))})(_7,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 x7==\"object\"&&typeof RWe!=\"undefined\"?t(x7):(e=e||self,t(e.d3=e.d3||{}))})(x7,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=_.prototype={constructor:v,restart:function(C,M,g){if(typeof C!=\"function\")throw new TypeError(\"callback is not a function\");g=(g==null?h():+g)+(M==null?0:+M),!this._next&&o!==this&&(o?o._next=this:a=this,o=this),this._call=C,this._time=g,S()},stop:function(){this._call&&(this._call=null,this._time=1/0,S())}};function _(C,M,g){var P=new v;return P.restart(C,M,g),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 p(){l=(s=c.now())+u,t=r=0;try{b()}finally{t=0,E(),l=0}}function k(){var C=c.now(),M=C-s;M>i&&(u-=M,s=C)}function E(){for(var C,M=a,g,P=1/0;M;)M._call?(P>M._time&&(P=M._time),C=M,M=M._next):(g=M._next,M._next=null,M=C?C._next=g:a=g);o=C,S(P)}function S(C){if(!t){r&&(r=clearTimeout(r));var M=C-l;M>24?(C<1/0&&(r=setTimeout(p,C-c.now()-u)),n&&(n=clearInterval(n))):(n||(s=c.now(),n=setInterval(k,i)),t=1,f(p))}}function L(C,M,g){var P=new v;return M=M==null?0:+M,P.restart(function(T){P.stop(),C(T+M)},M,g),P}function x(C,M,g){var P=new v,T=M;return M==null?(P.restart(C,M,g),P):(M=+M,g=g==null?h():+g,P.restart(function z(O){O+=T,P.restart(z,T+=M,g),C(O)},M,g),P)}e.interval=x,e.now=h,e.timeout=L,e.timer=_,e.timerFlush=b,Object.defineProperty(e,\"__esModule\",{value:!0})})});var zWe=ye((b7,FWe)=>{(function(e,t){typeof b7==\"object\"&&typeof FWe!=\"undefined\"?t(b7,CWe(),y7(),IWe(),DWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(b7,function(e,t,r,n,i){\"use strict\";function a(C,M){var g;C==null&&(C=0),M==null&&(M=0);function P(){var T,z=g.length,O,V=0,G=0;for(T=0;TN.index){var Re=j-Fe.x-Fe.vx,ce=re-Fe.y-Fe.vy,Ze=Re*Re+ce*ce;Zej+ge||Lere+ge||AeG.r&&(G.r=G[Z].r)}function V(){if(M){var G,Z=M.length,H;for(g=new Array(Z),G=0;G1?(_e==null?V.remove(oe):V.set(oe,re(_e)),M):V.get(oe)},find:function(oe,_e,Ee){var Ce=0,me=C.length,ie,Se,Le,Ae,Fe;for(Ee==null?Ee=1/0:Ee*=Ee,Ce=0;Ce1?(Z.on(oe,_e),M):Z.on(oe)}}}function E(){var C,M,g,P=o(-30),T,z=1,O=1/0,V=.81;function G(j){var re,oe=C.length,_e=t.quadtree(C,v,_).visitAfter(H);for(g=j,re=0;re=O)return;(j.data!==M||j.next)&&(Ee===0&&(Ee=s(),ie+=Ee*Ee),Ce===0&&(Ce=s(),ie+=Ce*Ce),ie{(function(e,t){typeof w7==\"object\"&&typeof OWe!=\"undefined\"?t(w7):(e=e||self,t(e.d3=e.d3||{}))})(w7,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,_=c-l,b=h-s,p=d-l,k=b*b+p*p;if(f<0)throw new Error(\"negative radius: \"+f);if(this._x1===null)this._+=\"M\"+(this._x1=s)+\",\"+(this._y1=l);else if(k>n)if(!(Math.abs(p*v-_*b)>n)||!f)this._+=\"L\"+(this._x1=s)+\",\"+(this._y1=l);else{var E=u-h,S=c-d,L=v*v+_*_,x=E*E+S*S,C=Math.sqrt(L),M=Math.sqrt(k),g=f*Math.tan((t-Math.acos((L+k-x)/(2*C*M)))/2),P=g/M,T=g/C;Math.abs(P-1)>n&&(this._+=\"L\"+(s+P*b)+\",\"+(l+P*p)),this._+=\"A\"+f+\",\"+f+\",0,0,\"+ +(p*E>b*S)+\",\"+(this._x1=s+T*v)+\",\"+(this._y1=l+T*_)}},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),_=s+d,b=l+v,p=1^h,k=h?c-f:f-c;if(u<0)throw new Error(\"negative radius: \"+u);this._x1===null?this._+=\"M\"+_+\",\"+b:(Math.abs(this._x1-_)>n||Math.abs(this._y1-b)>n)&&(this._+=\"L\"+_+\",\"+b),u&&(k<0&&(k=k%r+r),k>i?this._+=\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(s-d)+\",\"+(l-v)+\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(this._x1=_)+\",\"+(this._y1=b):k>n&&(this._+=\"A\"+u+\",\"+u+\",0,\"+ +(k>=t)+\",\"+p+\",\"+(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 HJ=ye((T7,BWe)=>{(function(e,t){typeof T7==\"object\"&&typeof BWe!=\"undefined\"?t(T7,qWe()):(e=e||self,t(e.d3=e.d3||{},e.d3))})(T7,function(e,t){\"use strict\";function r(Mt){return function(){return Mt}}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(Mt){return Mt>1?0:Mt<-1?f:Math.acos(Mt)}function _(Mt){return Mt>=1?h:Mt<=-1?-h:Math.asin(Mt)}function b(Mt){return Mt.innerRadius}function p(Mt){return Mt.outerRadius}function k(Mt){return Mt.startAngle}function E(Mt){return Mt.endAngle}function S(Mt){return Mt&&Mt.padAngle}function L(Mt,kr,Jr,vi,hn,An,Mn,Li){var _n=Jr-Mt,ya=vi-kr,Jn=Mn-hn,Ma=Li-An,_o=Ma*_n-Jn*ya;if(!(_o*_oZl*Zl+Su*Su&&(As=Ks,cl=zs),{cx:As,cy:cl,x01:-Jn,y01:-Ma,x11:As*(hn/zl-1),y11:cl*(hn/zl-1)}}function C(){var Mt=b,kr=p,Jr=r(0),vi=null,hn=k,An=E,Mn=S,Li=null;function _n(){var ya,Jn,Ma=+Mt.apply(this,arguments),_o=+kr.apply(this,arguments),No=hn.apply(this,arguments)-h,po=An.apply(this,arguments)-h,Lo=n(po-No),ko=po>No;if(Li||(Li=ya=t.path()),_oc))Li.moveTo(0,0);else if(Lo>d-c)Li.moveTo(_o*a(No),_o*l(No)),Li.arc(0,0,_o,No,po,!ko),Ma>c&&(Li.moveTo(Ma*a(po),Ma*l(po)),Li.arc(0,0,Ma,po,No,ko));else{var Ds=No,Fs=po,ll=No,ul=po,zl=Lo,us=Lo,il=Mn.apply(this,arguments)/2,As=il>c&&(vi?+vi.apply(this,arguments):u(Ma*Ma+_o*_o)),cl=s(n(_o-Ma)/2,+Jr.apply(this,arguments)),Ks=cl,zs=cl,Io,ls;if(As>c){var Zl=_(As/Ma*l(il)),Su=_(As/_o*l(il));(zl-=Zl*2)>c?(Zl*=ko?1:-1,ll+=Zl,ul-=Zl):(zl=0,ll=ul=(No+po)/2),(us-=Su*2)>c?(Su*=ko?1:-1,Ds+=Su,Fs-=Su):(us=0,Ds=Fs=(No+po)/2)}var nc=_o*a(Ds),bs=_o*l(Ds),Rn=Ma*a(ul),_a=Ma*l(ul);if(cl>c){var Vu=_o*a(Fs),Ol=_o*l(Fs),xo=Ma*a(ll),Yl=Ma*l(ll),Ns;if(Loc?zs>c?(Io=x(xo,Yl,nc,bs,_o,zs,ko),ls=x(Vu,Ol,Rn,_a,_o,zs,ko),Li.moveTo(Io.cx+Io.x01,Io.cy+Io.y01),zsc)||!(zl>c)?Li.lineTo(Rn,_a):Ks>c?(Io=x(Rn,_a,Vu,Ol,Ma,-Ks,ko),ls=x(nc,bs,xo,Yl,Ma,-Ks,ko),Li.lineTo(Io.cx+Io.x01,Io.cy+Io.y01),Ks=_o;--No)Li.point(Fs[No],ll[No]);Li.lineEnd(),Li.areaEnd()}ko&&(Fs[Ma]=+Mt(Lo,Ma,Jn),ll[Ma]=+Jr(Lo,Ma,Jn),Li.point(kr?+kr(Lo,Ma,Jn):Fs[Ma],vi?+vi(Lo,Ma,Jn):ll[Ma]))}if(Ds)return Li=null,Ds+\"\"||null}function ya(){return z().defined(hn).curve(Mn).context(An)}return _n.x=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),kr=null,_n):Mt},_n.x0=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),_n):Mt},_n.x1=function(Jn){return arguments.length?(kr=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):kr},_n.y=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),vi=null,_n):Jr},_n.y0=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),_n):Jr},_n.y1=function(Jn){return arguments.length?(vi=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):vi},_n.lineX0=_n.lineY0=function(){return ya().x(Mt).y(Jr)},_n.lineY1=function(){return ya().x(Mt).y(vi)},_n.lineX1=function(){return ya().x(kr).y(Jr)},_n.defined=function(Jn){return arguments.length?(hn=typeof Jn==\"function\"?Jn:r(!!Jn),_n):hn},_n.curve=function(Jn){return arguments.length?(Mn=Jn,An!=null&&(Li=Mn(An)),_n):Mn},_n.context=function(Jn){return arguments.length?(Jn==null?An=Li=null:Li=Mn(An=Jn),_n):An},_n}function V(Mt,kr){return krMt?1:kr>=Mt?0:NaN}function G(Mt){return Mt}function Z(){var Mt=G,kr=V,Jr=null,vi=r(0),hn=r(d),An=r(0);function Mn(Li){var _n,ya=Li.length,Jn,Ma,_o=0,No=new Array(ya),po=new Array(ya),Lo=+vi.apply(this,arguments),ko=Math.min(d,Math.max(-d,hn.apply(this,arguments)-Lo)),Ds,Fs=Math.min(Math.abs(ko)/ya,An.apply(this,arguments)),ll=Fs*(ko<0?-1:1),ul;for(_n=0;_n0&&(_o+=ul);for(kr!=null?No.sort(function(zl,us){return kr(po[zl],po[us])}):Jr!=null&&No.sort(function(zl,us){return Jr(Li[zl],Li[us])}),_n=0,Ma=_o?(ko-ya*ll)/_o:0;_n0?ul*Ma:0)+ll,po[Jn]={data:Li[Jn],index:_n,value:ul,startAngle:Lo,endAngle:Ds,padAngle:Fs};return po}return Mn.value=function(Li){return arguments.length?(Mt=typeof Li==\"function\"?Li:r(+Li),Mn):Mt},Mn.sortValues=function(Li){return arguments.length?(kr=Li,Jr=null,Mn):kr},Mn.sort=function(Li){return arguments.length?(Jr=Li,kr=null,Mn):Jr},Mn.startAngle=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.endAngle=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.padAngle=function(Li){return arguments.length?(An=typeof Li==\"function\"?Li:r(+Li),Mn):An},Mn}var H=j(g);function N(Mt){this._curve=Mt}N.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(Mt,kr){this._curve.point(kr*Math.sin(Mt),kr*-Math.cos(Mt))}};function j(Mt){function kr(Jr){return new N(Mt(Jr))}return kr._curve=Mt,kr}function re(Mt){var kr=Mt.curve;return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt.curve=function(Jr){return arguments.length?kr(j(Jr)):kr()._curve},Mt}function oe(){return re(z().curve(H))}function _e(){var Mt=O().curve(H),kr=Mt.curve,Jr=Mt.lineX0,vi=Mt.lineX1,hn=Mt.lineY0,An=Mt.lineY1;return Mt.angle=Mt.x,delete Mt.x,Mt.startAngle=Mt.x0,delete Mt.x0,Mt.endAngle=Mt.x1,delete Mt.x1,Mt.radius=Mt.y,delete Mt.y,Mt.innerRadius=Mt.y0,delete Mt.y0,Mt.outerRadius=Mt.y1,delete Mt.y1,Mt.lineStartAngle=function(){return re(Jr())},delete Mt.lineX0,Mt.lineEndAngle=function(){return re(vi())},delete Mt.lineX1,Mt.lineInnerRadius=function(){return re(hn())},delete Mt.lineY0,Mt.lineOuterRadius=function(){return re(An())},delete Mt.lineY1,Mt.curve=function(Mn){return arguments.length?kr(j(Mn)):kr()._curve},Mt}function Ee(Mt,kr){return[(kr=+kr)*Math.cos(Mt-=Math.PI/2),kr*Math.sin(Mt)]}var Ce=Array.prototype.slice;function me(Mt){return Mt.source}function ie(Mt){return Mt.target}function Se(Mt){var kr=me,Jr=ie,vi=P,hn=T,An=null;function Mn(){var Li,_n=Ce.call(arguments),ya=kr.apply(this,_n),Jn=Jr.apply(this,_n);if(An||(An=Li=t.path()),Mt(An,+vi.apply(this,(_n[0]=ya,_n)),+hn.apply(this,_n),+vi.apply(this,(_n[0]=Jn,_n)),+hn.apply(this,_n)),Li)return An=null,Li+\"\"||null}return Mn.source=function(Li){return arguments.length?(kr=Li,Mn):kr},Mn.target=function(Li){return arguments.length?(Jr=Li,Mn):Jr},Mn.x=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.y=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.context=function(Li){return arguments.length?(An=Li==null?null:Li,Mn):An},Mn}function Le(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr=(kr+vi)/2,Jr,kr,hn,vi,hn)}function Ae(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr,Jr=(Jr+hn)/2,vi,Jr,vi,hn)}function Fe(Mt,kr,Jr,vi,hn){var An=Ee(kr,Jr),Mn=Ee(kr,Jr=(Jr+hn)/2),Li=Ee(vi,Jr),_n=Ee(vi,hn);Mt.moveTo(An[0],An[1]),Mt.bezierCurveTo(Mn[0],Mn[1],Li[0],Li[1],_n[0],_n[1])}function Pe(){return Se(Le)}function ge(){return Se(Ae)}function Re(){var Mt=Se(Fe);return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt}var ce={draw:function(Mt,kr){var Jr=Math.sqrt(kr/f);Mt.moveTo(Jr,0),Mt.arc(0,0,Jr,0,d)}},Ze={draw:function(Mt,kr){var Jr=Math.sqrt(kr/5)/2;Mt.moveTo(-3*Jr,-Jr),Mt.lineTo(-Jr,-Jr),Mt.lineTo(-Jr,-3*Jr),Mt.lineTo(Jr,-3*Jr),Mt.lineTo(Jr,-Jr),Mt.lineTo(3*Jr,-Jr),Mt.lineTo(3*Jr,Jr),Mt.lineTo(Jr,Jr),Mt.lineTo(Jr,3*Jr),Mt.lineTo(-Jr,3*Jr),Mt.lineTo(-Jr,Jr),Mt.lineTo(-3*Jr,Jr),Mt.closePath()}},ut=Math.sqrt(1/3),pt=ut*2,Zt={draw:function(Mt,kr){var Jr=Math.sqrt(kr/pt),vi=Jr*ut;Mt.moveTo(0,-Jr),Mt.lineTo(vi,0),Mt.lineTo(0,Jr),Mt.lineTo(-vi,0),Mt.closePath()}},st=.8908130915292852,lt=Math.sin(f/10)/Math.sin(7*f/10),Gt=Math.sin(d/10)*lt,Nt=-Math.cos(d/10)*lt,Jt={draw:function(Mt,kr){var Jr=Math.sqrt(kr*st),vi=Gt*Jr,hn=Nt*Jr;Mt.moveTo(0,-Jr),Mt.lineTo(vi,hn);for(var An=1;An<5;++An){var Mn=d*An/5,Li=Math.cos(Mn),_n=Math.sin(Mn);Mt.lineTo(_n*Jr,-Li*Jr),Mt.lineTo(Li*vi-_n*hn,_n*vi+Li*hn)}Mt.closePath()}},sr={draw:function(Mt,kr){var Jr=Math.sqrt(kr),vi=-Jr/2;Mt.rect(vi,vi,Jr,Jr)}},wr=Math.sqrt(3),cr={draw:function(Mt,kr){var Jr=-Math.sqrt(kr/(wr*3));Mt.moveTo(0,Jr*2),Mt.lineTo(-wr*Jr,-Jr),Mt.lineTo(wr*Jr,-Jr),Mt.closePath()}},$e=-.5,St=Math.sqrt(3)/2,Qt=1/Math.sqrt(12),Vt=(Qt/2+1)*3,_t={draw:function(Mt,kr){var Jr=Math.sqrt(kr/Vt),vi=Jr/2,hn=Jr*Qt,An=vi,Mn=Jr*Qt+Jr,Li=-An,_n=Mn;Mt.moveTo(vi,hn),Mt.lineTo(An,Mn),Mt.lineTo(Li,_n),Mt.lineTo($e*vi-St*hn,St*vi+$e*hn),Mt.lineTo($e*An-St*Mn,St*An+$e*Mn),Mt.lineTo($e*Li-St*_n,St*Li+$e*_n),Mt.lineTo($e*vi+St*hn,$e*hn-St*vi),Mt.lineTo($e*An+St*Mn,$e*Mn-St*An),Mt.lineTo($e*Li+St*_n,$e*_n-St*Li),Mt.closePath()}},It=[ce,Ze,Zt,sr,Jt,cr,_t];function mt(){var Mt=r(ce),kr=r(64),Jr=null;function vi(){var hn;if(Jr||(Jr=hn=t.path()),Mt.apply(this,arguments).draw(Jr,+kr.apply(this,arguments)),hn)return Jr=null,hn+\"\"||null}return vi.type=function(hn){return arguments.length?(Mt=typeof hn==\"function\"?hn:r(hn),vi):Mt},vi.size=function(hn){return arguments.length?(kr=typeof hn==\"function\"?hn:r(+hn),vi):kr},vi.context=function(hn){return arguments.length?(Jr=hn==null?null:hn,vi):Jr},vi}function er(){}function lr(Mt,kr,Jr){Mt._context.bezierCurveTo((2*Mt._x0+Mt._x1)/3,(2*Mt._y0+Mt._y1)/3,(Mt._x0+2*Mt._x1)/3,(Mt._y0+2*Mt._y1)/3,(Mt._x0+4*Mt._x1+kr)/6,(Mt._y0+4*Mt._y1+Jr)/6)}function Tr(Mt){this._context=Mt}Tr.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:lr(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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);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:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Lr(Mt){return new Tr(Mt)}function ti(Mt){this._context=Mt}ti.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x2=Mt,this._y2=kr;break;case 1:this._point=2,this._x3=Mt,this._y3=kr;break;case 2:this._point=3,this._x4=Mt,this._y4=kr,this._context.moveTo((this._x0+4*this._x1+Mt)/6,(this._y0+4*this._y1+kr)/6);break;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Br(Mt){return new ti(Mt)}function Vr(Mt){this._context=Mt}Vr.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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var Jr=(this._x0+4*this._x1+Mt)/6,vi=(this._y0+4*this._y1+kr)/6;this._line?this._context.lineTo(Jr,vi):this._context.moveTo(Jr,vi);break;case 3:this._point=4;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function dt(Mt){return new Vr(Mt)}function Ge(Mt,kr){this._basis=new Tr(Mt),this._beta=kr}Ge.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length-1;if(Jr>0)for(var vi=Mt[0],hn=kr[0],An=Mt[Jr]-vi,Mn=kr[Jr]-hn,Li=-1,_n;++Li<=Jr;)_n=Li/Jr,this._basis.point(this._beta*Mt[Li]+(1-this._beta)*(vi+_n*An),this._beta*kr[Li]+(1-this._beta)*(hn+_n*Mn));this._x=this._y=null,this._basis.lineEnd()},point:function(Mt,kr){this._x.push(+Mt),this._y.push(+kr)}};var Je=function Mt(kr){function Jr(vi){return kr===1?new Tr(vi):new Ge(vi,kr)}return Jr.beta=function(vi){return Mt(+vi)},Jr}(.85);function je(Mt,kr,Jr){Mt._context.bezierCurveTo(Mt._x1+Mt._k*(Mt._x2-Mt._x0),Mt._y1+Mt._k*(Mt._y2-Mt._y0),Mt._x2+Mt._k*(Mt._x1-kr),Mt._y2+Mt._k*(Mt._y1-Jr),Mt._x2,Mt._y2)}function tt(Mt,kr){this._context=Mt,this._k=(1-kr)/6}tt.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:je(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2,this._x1=Mt,this._y1=kr;break;case 2:this._point=3;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xt=function Mt(kr){function Jr(vi){return new tt(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function Ie(Mt,kr){this._context=Mt,this._k=(1-kr)/6}Ie.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xe=function Mt(kr){function Jr(vi){return new Ie(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ke(Mt,kr){this._context=Mt,this._k=(1-kr)/6}ke.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(Mt,kr){switch(Mt=+Mt,kr=+kr,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:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vt=function Mt(kr){function Jr(vi){return new ke(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ir(Mt,kr,Jr){var vi=Mt._x1,hn=Mt._y1,An=Mt._x2,Mn=Mt._y2;if(Mt._l01_a>c){var Li=2*Mt._l01_2a+3*Mt._l01_a*Mt._l12_a+Mt._l12_2a,_n=3*Mt._l01_a*(Mt._l01_a+Mt._l12_a);vi=(vi*Li-Mt._x0*Mt._l12_2a+Mt._x2*Mt._l01_2a)/_n,hn=(hn*Li-Mt._y0*Mt._l12_2a+Mt._y2*Mt._l01_2a)/_n}if(Mt._l23_a>c){var ya=2*Mt._l23_2a+3*Mt._l23_a*Mt._l12_a+Mt._l12_2a,Jn=3*Mt._l23_a*(Mt._l23_a+Mt._l12_a);An=(An*ya+Mt._x1*Mt._l23_2a-kr*Mt._l12_2a)/Jn,Mn=(Mn*ya+Mt._y1*Mt._l23_2a-Jr*Mt._l12_2a)/Jn}Mt._context.bezierCurveTo(vi,hn,An,Mn,Mt._x2,Mt._y2)}function ar(Mt,kr){this._context=Mt,this._alpha=kr}ar.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vr=function Mt(kr){function Jr(vi){return kr?new ar(vi,kr):new tt(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ii(Mt,kr){this._context=Mt,this._alpha=kr}ii.prototype={areaStart:er,areaEnd:er,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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var pi=function Mt(kr){function Jr(vi){return kr?new ii(vi,kr):new Ie(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function $r(Mt,kr){this._context=Mt,this._alpha=kr}$r.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,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:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var di=function Mt(kr){function Jr(vi){return kr?new $r(vi,kr):new ke(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ji(Mt){this._context=Mt}ji.prototype={areaStart:er,areaEnd:er,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(Mt,kr){Mt=+Mt,kr=+kr,this._point?this._context.lineTo(Mt,kr):(this._point=1,this._context.moveTo(Mt,kr))}};function In(Mt){return new ji(Mt)}function wi(Mt){return Mt<0?-1:1}function On(Mt,kr,Jr){var vi=Mt._x1-Mt._x0,hn=kr-Mt._x1,An=(Mt._y1-Mt._y0)/(vi||hn<0&&-0),Mn=(Jr-Mt._y1)/(hn||vi<0&&-0),Li=(An*hn+Mn*vi)/(vi+hn);return(wi(An)+wi(Mn))*Math.min(Math.abs(An),Math.abs(Mn),.5*Math.abs(Li))||0}function qn(Mt,kr){var Jr=Mt._x1-Mt._x0;return Jr?(3*(Mt._y1-Mt._y0)/Jr-kr)/2:kr}function Fn(Mt,kr,Jr){var vi=Mt._x0,hn=Mt._y0,An=Mt._x1,Mn=Mt._y1,Li=(An-vi)/3;Mt._context.bezierCurveTo(vi+Li,hn+Li*kr,An-Li,Mn-Li*Jr,An,Mn)}function ra(Mt){this._context=Mt}ra.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:Fn(this,this._t0,qn(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){var Jr=NaN;if(Mt=+Mt,kr=+kr,!(Mt===this._x1&&kr===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3,Fn(this,qn(this,Jr=On(this,Mt,kr)),Jr);break;default:Fn(this,this._t0,Jr=On(this,Mt,kr));break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr,this._t0=Jr}}};function la(Mt){this._context=new Ut(Mt)}(la.prototype=Object.create(ra.prototype)).point=function(Mt,kr){ra.prototype.point.call(this,kr,Mt)};function Ut(Mt){this._context=Mt}Ut.prototype={moveTo:function(Mt,kr){this._context.moveTo(kr,Mt)},closePath:function(){this._context.closePath()},lineTo:function(Mt,kr){this._context.lineTo(kr,Mt)},bezierCurveTo:function(Mt,kr,Jr,vi,hn,An){this._context.bezierCurveTo(kr,Mt,vi,Jr,An,hn)}};function wt(Mt){return new ra(Mt)}function rr(Mt){return new la(Mt)}function nr(Mt){this._context=Mt}nr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length;if(Jr)if(this._line?this._context.lineTo(Mt[0],kr[0]):this._context.moveTo(Mt[0],kr[0]),Jr===2)this._context.lineTo(Mt[1],kr[1]);else for(var vi=Er(Mt),hn=Er(kr),An=0,Mn=1;Mn=0;--kr)hn[kr]=(Mn[kr]-hn[kr+1])/An[kr];for(An[Jr-1]=(Mt[Jr]+hn[Jr-1])/2,kr=0;kr=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,kr),this._context.lineTo(Mt,kr);else{var Jr=this._x*(1-this._t)+Mt*this._t;this._context.lineTo(Jr,this._y),this._context.lineTo(Jr,kr)}break}}this._x=Mt,this._y=kr}};function Qr(Mt){return new ri(Mt,.5)}function Oi(Mt){return new ri(Mt,0)}function $i(Mt){return new ri(Mt,1)}function tn(Mt,kr){if((Mn=Mt.length)>1)for(var Jr=1,vi,hn,An=Mt[kr[0]],Mn,Li=An.length;Jr=0;)Jr[kr]=kr;return Jr}function yn(Mt,kr){return Mt[kr]}function Sn(){var Mt=r([]),kr=fn,Jr=tn,vi=yn;function hn(An){var Mn=Mt.apply(this,arguments),Li,_n=An.length,ya=Mn.length,Jn=new Array(ya),Ma;for(Li=0;Li0){for(var Jr,vi,hn=0,An=Mt[0].length,Mn;hn0)for(var Jr,vi=0,hn,An,Mn,Li,_n,ya=Mt[kr[0]].length;vi0?(hn[0]=Mn,hn[1]=Mn+=An):An<0?(hn[1]=Li,hn[0]=Li+=An):(hn[0]=0,hn[1]=An)}function ma(Mt,kr){if((hn=Mt.length)>0){for(var Jr=0,vi=Mt[kr[0]],hn,An=vi.length;Jr0)||!((An=(hn=Mt[kr[0]]).length)>0))){for(var Jr=0,vi=1,hn,An,Mn;viAn&&(An=hn,Jr=kr);return Jr}function da(Mt){var kr=Mt.map(Wn);return fn(Mt).sort(function(Jr,vi){return kr[Jr]-kr[vi]})}function Wn(Mt){for(var kr=0,Jr=-1,vi=Mt.length,hn;++Jr{(function(e,t){typeof A7==\"object\"&&typeof NWe!=\"undefined\"?t(A7,nk(),y7(),HJ()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3)})(A7,function(e,t,r,n){\"use strict\";function i(g){return g.target.depth}function a(g){return g.depth}function o(g,P){return P-1-g.height}function s(g,P){return g.sourceLinks.length?g.depth:P-1}function l(g){return g.targetLinks.length?g.depth:g.sourceLinks.length?t.min(g.sourceLinks,i)-1:0}function u(g){return function(){return g}}function c(g,P){return h(g.source,P.source)||g.index-P.index}function f(g,P){return h(g.target,P.target)||g.index-P.index}function h(g,P){return g.y0-P.y0}function d(g){return g.value}function v(g){return(g.y0+g.y1)/2}function _(g){return v(g.source)*g.value}function b(g){return v(g.target)*g.value}function p(g){return g.index}function k(g){return g.nodes}function E(g){return g.links}function S(g,P){var T=g.get(P);if(!T)throw new Error(\"missing: \"+P);return T}var L=function(){var g=0,P=0,T=1,z=1,O=24,V=8,G=p,Z=s,H=k,N=E,j=32,re=2/3;function oe(){var Se={nodes:H.apply(null,arguments),links:N.apply(null,arguments)};return _e(Se),Ee(Se),Ce(Se),me(Se,j),ie(Se),Se}oe.update=function(Se){return ie(Se),Se},oe.nodeId=function(Se){return arguments.length?(G=typeof Se==\"function\"?Se:u(Se),oe):G},oe.nodeAlign=function(Se){return arguments.length?(Z=typeof Se==\"function\"?Se:u(Se),oe):Z},oe.nodeWidth=function(Se){return arguments.length?(O=+Se,oe):O},oe.nodePadding=function(Se){return arguments.length?(V=+Se,oe):V},oe.nodes=function(Se){return arguments.length?(H=typeof Se==\"function\"?Se:u(Se),oe):H},oe.links=function(Se){return arguments.length?(N=typeof Se==\"function\"?Se:u(Se),oe):N},oe.size=function(Se){return arguments.length?(g=P=0,T=+Se[0],z=+Se[1],oe):[T-g,z-P]},oe.extent=function(Se){return arguments.length?(g=+Se[0][0],T=+Se[1][0],P=+Se[0][1],z=+Se[1][1],oe):[[g,P],[T,z]]},oe.iterations=function(Se){return arguments.length?(j=+Se,oe):j};function _e(Se){Se.nodes.forEach(function(Ae,Fe){Ae.index=Fe,Ae.sourceLinks=[],Ae.targetLinks=[]});var Le=r.map(Se.nodes,G);Se.links.forEach(function(Ae,Fe){Ae.index=Fe;var Pe=Ae.source,ge=Ae.target;typeof Pe!=\"object\"&&(Pe=Ae.source=S(Le,Pe)),typeof ge!=\"object\"&&(ge=Ae.target=S(Le,ge)),Pe.sourceLinks.push(Ae),ge.targetLinks.push(Ae)})}function Ee(Se){Se.nodes.forEach(function(Le){Le.value=Math.max(t.sum(Le.sourceLinks,d),t.sum(Le.targetLinks,d))})}function Ce(Se){var Le,Ae,Fe;for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.depth=Fe,ge.sourceLinks.forEach(function(Re){Ae.indexOf(Re.target)<0&&Ae.push(Re.target)})});for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.height=Fe,ge.targetLinks.forEach(function(Re){Ae.indexOf(Re.source)<0&&Ae.push(Re.source)})});var Pe=(T-g-O)/(Fe-1);Se.nodes.forEach(function(ge){ge.x1=(ge.x0=g+Math.max(0,Math.min(Fe-1,Math.floor(Z.call(null,ge,Fe))))*Pe)+O})}function me(Se){var Le=r.nest().key(function(Ze){return Ze.x0}).sortKeys(t.ascending).entries(Se.nodes).map(function(Ze){return Ze.values});Pe(),ce();for(var Ae=1,Fe=j;Fe>0;--Fe)Re(Ae*=.99),ce(),ge(Ae),ce();function Pe(){var Ze=t.max(Le,function(Zt){return Zt.length}),ut=re*(z-P)/(Ze-1);V>ut&&(V=ut);var pt=t.min(Le,function(Zt){return(z-P-(Zt.length-1)*V)/t.sum(Zt,d)});Le.forEach(function(Zt){Zt.forEach(function(st,lt){st.y1=(st.y0=lt)+st.value*pt})}),Se.links.forEach(function(Zt){Zt.width=Zt.value*pt})}function ge(Ze){Le.forEach(function(ut){ut.forEach(function(pt){if(pt.targetLinks.length){var Zt=(t.sum(pt.targetLinks,_)/t.sum(pt.targetLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function Re(Ze){Le.slice().reverse().forEach(function(ut){ut.forEach(function(pt){if(pt.sourceLinks.length){var Zt=(t.sum(pt.sourceLinks,b)/t.sum(pt.sourceLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function ce(){Le.forEach(function(Ze){var ut,pt,Zt=P,st=Ze.length,lt;for(Ze.sort(h),lt=0;lt0&&(ut.y0+=pt,ut.y1+=pt),Zt=ut.y1+V;if(pt=Zt-V-z,pt>0)for(Zt=ut.y0-=pt,ut.y1-=pt,lt=st-2;lt>=0;--lt)ut=Ze[lt],pt=ut.y1+V-Zt,pt>0&&(ut.y0-=pt,ut.y1-=pt),Zt=ut.y0})}}function ie(Se){Se.nodes.forEach(function(Le){Le.sourceLinks.sort(f),Le.targetLinks.sort(c)}),Se.nodes.forEach(function(Le){var Ae=Le.y0,Fe=Ae;Le.sourceLinks.forEach(function(Pe){Pe.y0=Ae+Pe.width/2,Ae+=Pe.width}),Le.targetLinks.forEach(function(Pe){Pe.y1=Fe+Pe.width/2,Fe+=Pe.width})})}return oe};function x(g){return[g.source.x1,g.y0]}function C(g){return[g.target.x0,g.y1]}var M=function(){return n.linkHorizontal().source(x).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 GWe=ye((Qbr,VWe)=>{var FZt=GJ();VWe.exports=function(t,r){var n=[],i=[],a=[],o={},s=[],l;function u(E){a[E]=!1,o.hasOwnProperty(E)&&Object.keys(o[E]).forEach(function(S){delete o[E][S],a[S]&&u(S)})}function c(E){var S=!1;i.push(E),a[E]=!0;var L,x;for(L=0;L=E})}function d(E){h(E);for(var S=t,L=FZt(S),x=L.components.filter(function(O){return O.length>1}),C=1/0,M,g=0;g{(function(e,t){typeof S7==\"object\"&&typeof HWe!=\"undefined\"?t(S7,nk(),y7(),HJ(),GWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,null)})(S7,function(e,t,r,n,i){\"use strict\";i=i&&i.hasOwnProperty(\"default\")?i.default:i;function a(st){return st.target.depth}function o(st){return st.depth}function s(st,lt){return lt-1-st.height}function l(st,lt){return st.sourceLinks.length?st.depth:lt-1}function u(st){return st.targetLinks.length?st.depth:st.sourceLinks.length?t.min(st.sourceLinks,a)-1:0}function c(st){return function(){return st}}var f=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(st){return typeof st}:function(st){return st&&typeof Symbol==\"function\"&&st.constructor===Symbol&&st!==Symbol.prototype?\"symbol\":typeof st};function h(st,lt){return v(st.source,lt.source)||st.index-lt.index}function d(st,lt){return v(st.target,lt.target)||st.index-lt.index}function v(st,lt){return st.partOfCycle===lt.partOfCycle?st.y0-lt.y0:st.circularLinkType===\"top\"||lt.circularLinkType===\"bottom\"?-1:1}function _(st){return st.value}function b(st){return(st.y0+st.y1)/2}function p(st){return b(st.source)}function k(st){return b(st.target)}function E(st){return st.index}function S(st){return st.nodes}function L(st){return st.links}function x(st,lt){var Gt=st.get(lt);if(!Gt)throw new Error(\"missing: \"+lt);return Gt}function C(st,lt){return lt(st)}var M=25,g=10,P=.3;function T(){var st=0,lt=0,Gt=1,Nt=1,Jt=24,sr,wr=E,cr=l,$e=S,St=L,Qt=32,Vt=2,_t,It=null;function mt(){var dt={nodes:$e.apply(null,arguments),links:St.apply(null,arguments)};er(dt),z(dt,wr,It),lr(dt),ti(dt),O(dt,wr),Br(dt,Qt,wr),Vr(dt);for(var Ge=4,Je=0;Je0?Ge+M+g:Ge,Je=Je>0?Je+M+g:Je,je=je>0?je+M+g:je,tt=tt>0?tt+M+g:tt,{top:Ge,bottom:Je,left:tt,right:je}}function Lr(dt,Ge){var Je=t.max(dt.nodes,function(vt){return vt.column}),je=Gt-st,tt=Nt-lt,xt=je+Ge.right+Ge.left,Ie=tt+Ge.top+Ge.bottom,xe=je/xt,ke=tt/Ie;return st=st*xe+Ge.left,Gt=Ge.right==0?Gt:Gt*xe,lt=lt*ke+Ge.top,Nt=Nt*ke,dt.nodes.forEach(function(vt){vt.x0=st+vt.column*((Gt-st-Jt)/Je),vt.x1=vt.x0+Jt}),ke}function ti(dt){var Ge,Je,je;for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.depth=je,tt.sourceLinks.forEach(function(xt){Je.indexOf(xt.target)<0&&!xt.circular&&Je.push(xt.target)})});for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.height=je,tt.targetLinks.forEach(function(xt){Je.indexOf(xt.source)<0&&!xt.circular&&Je.push(xt.source)})});dt.nodes.forEach(function(tt){tt.column=Math.floor(cr.call(null,tt,je))})}function Br(dt,Ge,Je){var je=r.nest().key(function(vt){return vt.column}).sortKeys(t.ascending).entries(dt.nodes).map(function(vt){return vt.values});Ie(Je),ke();for(var tt=1,xt=Ge;xt>0;--xt)xe(tt*=.99,Je),ke();function Ie(vt){if(_t){var ir=1/0;je.forEach(function(pi){var $r=Nt*_t/(pi.length+1);ir=$r0))if(pi==0&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else if(pi==ar-1&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else{var ji=0,In=t.mean($r.sourceLinks,k),wi=t.mean($r.targetLinks,p);In&&wi?ji=(In+wi)/2:ji=In||wi;var On=(ji-b($r))*vt;$r.y0+=On,$r.y1+=On}})})}function ke(){je.forEach(function(vt){var ir,ar,vr=lt,ii=vt.length,pi;for(vt.sort(v),pi=0;pi0&&(ir.y0+=ar,ir.y1+=ar),vr=ir.y1+sr;if(ar=vr-sr-Nt,ar>0)for(vr=ir.y0-=ar,ir.y1-=ar,pi=ii-2;pi>=0;--pi)ir=vt[pi],ar=ir.y1+sr-vr,ar>0&&(ir.y0-=ar,ir.y1-=ar),vr=ir.y0})}}function Vr(dt){dt.nodes.forEach(function(Ge){Ge.sourceLinks.sort(d),Ge.targetLinks.sort(h)}),dt.nodes.forEach(function(Ge){var Je=Ge.y0,je=Je,tt=Ge.y1,xt=tt;Ge.sourceLinks.forEach(function(Ie){Ie.circular?(Ie.y0=tt-Ie.width/2,tt=tt-Ie.width):(Ie.y0=Je+Ie.width/2,Je+=Ie.width)}),Ge.targetLinks.forEach(function(Ie){Ie.circular?(Ie.y1=xt-Ie.width/2,xt=xt-Ie.width):(Ie.y1=je+Ie.width/2,je+=Ie.width)})})}return mt}function z(st,lt,Gt){var Nt=0;if(Gt===null){for(var Jt=[],sr=0;srlt.source.column)}function Z(st,lt){var Gt=0;st.sourceLinks.forEach(function(Jt){Gt=Jt.circular&&!pt(Jt,lt)?Gt+1:Gt});var Nt=0;return st.targetLinks.forEach(function(Jt){Nt=Jt.circular&&!pt(Jt,lt)?Nt+1:Nt}),Gt+Nt}function H(st){var lt=st.source.sourceLinks,Gt=0;lt.forEach(function(sr){Gt=sr.circular?Gt+1:Gt});var Nt=st.target.targetLinks,Jt=0;return Nt.forEach(function(sr){Jt=sr.circular?Jt+1:Jt}),!(Gt>1||Jt>1)}function N(st,lt,Gt){return st.sort(oe),st.forEach(function(Nt,Jt){var sr=0;if(pt(Nt,Gt)&&H(Nt))Nt.circularPathData.verticalBuffer=sr+Nt.width/2;else{var wr=0;for(wr;wrsr?cr:sr}Nt.circularPathData.verticalBuffer=sr+Nt.width/2}}),st}function j(st,lt,Gt,Nt){var Jt=5,sr=t.min(st.links,function($e){return $e.source.y0});st.links.forEach(function($e){$e.circular&&($e.circularPathData={})});var wr=st.links.filter(function($e){return $e.circularLinkType==\"top\"});N(wr,lt,Nt);var cr=st.links.filter(function($e){return $e.circularLinkType==\"bottom\"});N(cr,lt,Nt),st.links.forEach(function($e){if($e.circular){if($e.circularPathData.arcRadius=$e.width+g,$e.circularPathData.leftNodeBuffer=Jt,$e.circularPathData.rightNodeBuffer=Jt,$e.circularPathData.sourceWidth=$e.source.x1-$e.source.x0,$e.circularPathData.sourceX=$e.source.x0+$e.circularPathData.sourceWidth,$e.circularPathData.targetX=$e.target.x0,$e.circularPathData.sourceY=$e.y0,$e.circularPathData.targetY=$e.y1,pt($e,Nt)&&H($e))$e.circularPathData.leftSmallArcRadius=g+$e.width/2,$e.circularPathData.leftLargeArcRadius=g+$e.width/2,$e.circularPathData.rightSmallArcRadius=g+$e.width/2,$e.circularPathData.rightLargeArcRadius=g+$e.width/2,$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=$e.source.y1+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=$e.source.y0-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius);else{var St=$e.source.column,Qt=$e.circularLinkType,Vt=st.links.filter(function(mt){return mt.source.column==St&&mt.circularLinkType==Qt});$e.circularLinkType==\"bottom\"?Vt.sort(Ee):Vt.sort(_e);var _t=0;Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.leftSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.leftLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),St=$e.target.column,Vt=st.links.filter(function(mt){return mt.target.column==St&&mt.circularLinkType==Qt}),$e.circularLinkType==\"bottom\"?Vt.sort(me):Vt.sort(Ce),_t=0,Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.rightSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.rightLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=Math.max(Gt,$e.source.y1,$e.target.y1)+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=sr-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius)}$e.circularPathData.leftInnerExtent=$e.circularPathData.sourceX+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightInnerExtent=$e.circularPathData.targetX-$e.circularPathData.rightNodeBuffer,$e.circularPathData.leftFullExtent=$e.circularPathData.sourceX+$e.circularPathData.leftLargeArcRadius+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightFullExtent=$e.circularPathData.targetX-$e.circularPathData.rightLargeArcRadius-$e.circularPathData.rightNodeBuffer}if($e.circular)$e.path=re($e);else{var It=n.linkHorizontal().source(function(mt){var er=mt.source.x0+(mt.source.x1-mt.source.x0),lr=mt.y0;return[er,lr]}).target(function(mt){var er=mt.target.x0,lr=mt.y1;return[er,lr]});$e.path=It($e)}})}function re(st){var lt=\"\";return st.circularLinkType==\"top\"?lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 0 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY-st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 0 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 0 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY-st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 0 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY:lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 1 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY+st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 1 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 1 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY+st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 1 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY,lt}function oe(st,lt){return ie(st)==ie(lt)?st.circularLinkType==\"bottom\"?Ee(st,lt):_e(st,lt):ie(lt)-ie(st)}function _e(st,lt){return st.y0-lt.y0}function Ee(st,lt){return lt.y0-st.y0}function Ce(st,lt){return st.y1-lt.y1}function me(st,lt){return lt.y1-st.y1}function ie(st){return st.target.column-st.source.column}function Se(st){return st.target.x0-st.source.x1}function Le(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1+Nt:st.y1-Nt;return Jt}function Ae(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1-Nt:st.y1+Nt;return Jt}function Fe(st,lt,Gt,Nt){st.links.forEach(function(Jt){if(!Jt.circular&&Jt.target.column-Jt.source.column>1){var sr=Jt.source.column+1,wr=Jt.target.column-1,cr=1,$e=wr-sr+1;for(cr=1;sr<=wr;sr++,cr++)st.nodes.forEach(function(St){if(St.column==sr){var Qt=cr/($e+1),Vt=Math.pow(1-Qt,3),_t=3*Qt*Math.pow(1-Qt,2),It=3*Math.pow(Qt,2)*(1-Qt),mt=Math.pow(Qt,3),er=Vt*Jt.y0+_t*Jt.y0+It*Jt.y1+mt*Jt.y1,lr=er-Jt.width/2,Tr=er+Jt.width/2,Lr;lr>St.y0&&lrSt.y0&&TrSt.y1&&ge(ti,Lr,lt,Gt)})):lrSt.y1&&(Lr=Tr-St.y0+10,St=ge(St,Lr,lt,Gt),st.nodes.forEach(function(ti){C(ti,Nt)==C(St,Nt)||ti.column!=St.column||ti.y0St.y1&&ge(ti,Lr,lt,Gt)}))}})}})}function Pe(st,lt){return st.y0>lt.y0&&st.y0lt.y0&&st.y1lt.y1}function ge(st,lt,Gt,Nt){return st.y0+lt>=Gt&&st.y1+lt<=Nt&&(st.y0=st.y0+lt,st.y1=st.y1+lt,st.targetLinks.forEach(function(Jt){Jt.y1=Jt.y1+lt}),st.sourceLinks.forEach(function(Jt){Jt.y0=Jt.y0+lt})),st}function Re(st,lt,Gt,Nt){st.nodes.forEach(function(Jt){Nt&&Jt.y+(Jt.y1-Jt.y0)>lt&&(Jt.y=Jt.y-(Jt.y+(Jt.y1-Jt.y0)-lt));var sr=st.links.filter(function($e){return C($e.source,Gt)==C(Jt,Gt)}),wr=sr.length;wr>1&&sr.sort(function($e,St){if(!$e.circular&&!St.circular){if($e.target.column==St.target.column)return $e.y1-St.y1;if(Ze($e,St)){if($e.target.column>St.target.column){var Qt=Ae(St,$e);return $e.y1-Qt}if(St.target.column>$e.target.column){var Vt=Ae($e,St);return Vt-St.y1}}else return $e.y1-St.y1}if($e.circular&&!St.circular)return $e.circularLinkType==\"top\"?-1:1;if(St.circular&&!$e.circular)return St.circularLinkType==\"top\"?1:-1;if($e.circular&&St.circular)return $e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"top\"?$e.target.column===St.target.column?$e.target.y1-St.target.y1:St.target.column-$e.target.column:$e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"bottom\"?$e.target.column===St.target.column?St.target.y1-$e.target.y1:$e.target.column-St.target.column:$e.circularLinkType==\"top\"?-1:1});var cr=Jt.y0;sr.forEach(function($e){$e.y0=cr+$e.width/2,cr=cr+$e.width}),sr.forEach(function($e,St){if($e.circularLinkType==\"bottom\"){var Qt=St+1,Vt=0;for(Qt;Qt1&&Jt.sort(function(cr,$e){if(!cr.circular&&!$e.circular){if(cr.source.column==$e.source.column)return cr.y0-$e.y0;if(Ze(cr,$e)){if($e.source.column0?\"up\":\"down\"}function pt(st,lt){return C(st.source,lt)==C(st.target,lt)}function Zt(st,lt,Gt){var Nt=st.nodes,Jt=st.links,sr=!1,wr=!1;if(Jt.forEach(function(_t){_t.circularLinkType==\"top\"?sr=!0:_t.circularLinkType==\"bottom\"&&(wr=!0)}),sr==!1||wr==!1){var cr=t.min(Nt,function(_t){return _t.y0}),$e=t.max(Nt,function(_t){return _t.y1}),St=$e-cr,Qt=Gt-lt,Vt=Qt/St;Nt.forEach(function(_t){var It=(_t.y1-_t.y0)*Vt;_t.y0=(_t.y0-cr)*Vt,_t.y1=_t.y0+It}),Jt.forEach(function(_t){_t.y0=(_t.y0-cr)*Vt,_t.y1=(_t.y1-cr)*Vt,_t.width=_t.width*Vt})}}e.sankeyCircular=T,e.sankeyCenter=u,e.sankeyLeft=o,e.sankeyRight=s,e.sankeyJustify=l,Object.defineProperty(e,\"__esModule\",{value:!0})})});var jJ=ye((e2r,WWe)=>{\"use strict\";WWe.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 aXe=ye((t2r,nXe)=>{\"use strict\";var XWe=zWe(),zZt=(D2(),ob(R2)).interpolateNumber,I5=Oa(),Jk=UWe(),OZt=jWe(),Nu=jJ(),R5=cd(),ow=ka(),qZt=So(),p1=Dr(),ZJ=p1.strTranslate,BZt=p1.strRotate,YJ=Jm(),$k=YJ.keyFun,M7=YJ.repeat,QWe=YJ.unwrap,ZWe=ru(),NZt=qa(),eXe=$h(),UZt=eXe.CAP_SHIFT,VZt=eXe.LINE_SPACING,GZt=3;function HZt(e,t,r){var n=QWe(t),i=n.trace,a=i.domain,o=i.orientation===\"h\",s=i.node.pad,l=i.node.thickness,u={justify:Jk.sankeyJustify,left:Jk.sankeyLeft,right:Jk.sankeyRight,center:Jk.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,_;v?_=OZt.sankeyCircular().circularLinkGap(0):_=Jk.sankey(),_.iterations(Nu.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=_();_.nodePadding()=N||(H=N-Z.y0,H>1e-6&&(Z.y0+=H,Z.y1+=H)),N=Z.y1+s})}function P(V){var G=V.map(function(_e,Ee){return{x0:_e.x0,index:Ee}}).sort(function(_e,Ee){return _e.x0-Ee.x0}),Z=[],H=-1,N,j=-1/0,re;for(p=0;pj+l&&(H+=1,N=oe.x0),j=oe.x0,Z[H]||(Z[H]=[]),Z[H].push(oe),re=N-oe.x0,oe.x0+=re,oe.x1+=re}return Z}if(i.node.x.length&&i.node.y.length){for(p=0;p0?\" 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 KJ(){var e=.5;function t(r){var n=r.linkArrowLength;if(r.link.circular)return WZt(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=zZt(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,_=\"C\"+l+\",\"+c+\" \"+u+\",\"+h+\" \"+o+\",\"+h,b=\"C\"+u+\",\"+d+\" \"+l+\",\"+f+\" \"+a+\",\"+f,p=n>0?\"L\"+(o+n)+\",\"+(h+r.link.width/2):\"\";return p+=\"L\"+o+\",\"+d,v+_+p+b+\"Z\"}return t}function XZt(e,t){var r=R5(t.color),n=Nu.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:ow.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 XJ(e){e.attr(\"transform\",function(t){return ZJ(t.node.x0.toFixed(3),t.node.y0.toFixed(3))})}function ZZt(e){e.call(XJ)}function tXe(e,t){e.call(ZZt),t.attr(\"d\",KJ())}function YWe(e){e.attr(\"width\",function(t){return t.node.x1-t.node.x0}).attr(\"height\",function(t){return t.visibleHeight})}function WJ(e){return e.link.width>1||e.linkLineWidth>0}function KWe(e){var t=ZJ(e.translateX,e.translateY);return t+(e.horizontal?\"matrix(1 0 0 1 0 0)\":\"matrix(0 1 1 0 0 0)\")}function JWe(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 YZt(e,t,r,n){var i=I5.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,$We(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):KZt(e,o,a,n),JZt(e,t,a,o,n)}}).on(\"drag\",function(a){if(a.arrangement!==\"fixed\"){var o=I5.event.x,s=I5.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),$We(a.node),a.arrangement!==\"snap\"&&(a.sankey.update(a.graph),tXe(e.filter(iXe(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,rXe(r,i)}})}function $Zt(e,t,r,n){return function(){for(var a=0,o=0;o0&&n.forceLayouts[t].alpha(0)}}function rXe(e,t){for(var r=[],n=[],i=0;i{\"use strict\";var Zv=Oa(),$J=Dr(),E7=$J.numberFormat,rYt=aXe(),D5=vf(),iYt=ka(),Sx=jJ().cn,Qk=$J._;function oXe(e){return e!==\"\"}function F5(e,t){return e.filter(function(r){return r.key===t.traceId})}function sXe(e,t){Zv.select(e).select(\"path\").style(\"fill-opacity\",t),Zv.select(e).select(\"rect\").style(\"fill-opacity\",t)}function lXe(e){Zv.select(e).select(\"text.name\").style(\"fill\",\"black\")}function uXe(e){return function(t){return e.node.sourceLinks.indexOf(t.link)!==-1||e.node.targetLinks.indexOf(t.link)!==-1}}function cXe(e){return function(t){return t.node.sourceLinks.indexOf(e.link)!==-1||t.node.targetLinks.indexOf(e.link)!==-1}}function fXe(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(hXe.bind(0,t,r,!1))}function JJ(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(dXe.bind(0,t,r,!1))}function hXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(\".\"+Sx.sankeyNode).filter(cXe(e)).call(fXe)}function dXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(Sx.sankeyNode).filter(cXe(e)).call(JJ)}function kf(e,t){var r=e.hoverlabel||{},n=$J.nestedProperty(r,t).get();return Array.isArray(n)?!1:n}vXe.exports=function(t,r){for(var n=t._fullLayout,i=n._paper,a=n._size,o=0;o\"),color:kf(C,\"bgcolor\")||iYt.addOpacity(z.color,1),borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:Zv.event.x\"),color:kf(C,\"bgcolor\")||x.tinyColorHue,borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:\"left\",hovertemplate:C.hovertemplate,hovertemplateLabels:V,eventData:[x.node]},{container:n._hoverlayer.node(),outerContainer:n._paper.node(),gd:t});sXe(H,.85),lXe(H)}}},S=function(L,x,C){t._fullLayout.hovermode!==!1&&(Zv.select(L).call(JJ,x,C),x.node.trace.node.hoverinfo!==\"skip\"&&(x.node.fullData=x.node.trace,t.emit(\"plotly_unhover\",{event:Zv.event,points:[x.node]})),D5.loneUnhover(n._hoverlayer.node()))};rYt(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:_,unhover:b,select:l},nodeEvents:{hover:k,follow:E,unhover:S,select:p}})}});var pXe=ye(sw=>{\"use strict\";var nYt=mc().overrideAll,aYt=Id().getModuleCalcData,oYt=QJ(),sYt=B1(),lYt=Ag(),uYt=yv(),cYt=Of().prepSelect,e$=Dr(),fYt=qa(),k7=\"sankey\";sw.name=k7;sw.baseLayoutAttrOverrides=nYt({hoverlabel:sYt.hoverlabel},\"plot\",\"nested\");sw.plot=function(e){var t=aYt(e.calcdata,k7)[0];oYt(e,t),sw.updateFx(e)};sw.clean=function(e,t,r,n){var i=n._has&&n._has(k7),a=t._has&&t._has(k7);i&&!a&&(n._paperdiv.selectAll(\".sankey\").remove(),n._paperdiv.selectAll(\".bgsankey\").remove())};sw.updateFx=function(e){for(var t=0;t{\"use strict\";gXe.exports=function(t,r){for(var n=t.cd,i=[],a=n[0].trace,o=a._sankey.graph.nodes,s=0;s{\"use strict\";yXe.exports={attributes:VJ(),supplyDefaults:wWe(),calc:EWe(),plot:QJ(),moduleType:\"trace\",name:\"sankey\",basePlotModule:pXe(),selectPoints:mXe(),categories:[\"noOpacity\"],meta:{}}});var bXe=ye((o2r,xXe)=>{\"use strict\";xXe.exports=_Xe()});var TXe=ye(z5=>{\"use strict\";var wXe=Mc();z5.name=\"indicator\";z5.plot=function(e,t,r,n){wXe.plotBasePlot(z5.name,e,t,r,n)};z5.clean=function(e,t,r,n){wXe.cleanBasePlot(z5.name,e,t,r,n)}});var r$=ye((l2r,CXe)=>{\"use strict\";var Mx=Ao().extendFlat,SXe=Ao().extendDeep,dYt=mc().overrideAll,MXe=ec(),EXe=Lh(),vYt=Cc().attributes,Bf=Rd(),pYt=vl().templatedArray,C7=WT(),AXe=df().descriptionOnlyNumbers,t$=MXe({editType:\"plot\",colorEditType:\"plot\"}),eC={color:{valType:\"color\",editType:\"plot\"},line:{color:{valType:\"color\",dflt:EXe.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\"},kXe={valType:\"info_array\",items:[{valType:\"number\",editType:\"plot\"},{valType:\"number\",editType:\"plot\"}],editType:\"plot\"},gYt=pYt(\"step\",SXe({},eC,{range:kXe}));CXe.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:vYt({name:\"indicator\",trace:!0,editType:\"calc\"}),title:{text:{valType:\"string\",editType:\"plot\"},align:{valType:\"enumerated\",values:[\"left\",\"center\",\"right\"],editType:\"plot\"},font:Mx({},t$,{}),editType:\"plot\"},number:{valueformat:{valType:\"string\",dflt:\"\",editType:\"plot\",description:AXe(\"value\")},font:Mx({},t$,{}),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:AXe(\"value\")},increasing:{symbol:{valType:\"string\",dflt:C7.INCREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.INCREASING.COLOR,editType:\"plot\"},editType:\"plot\"},decreasing:{symbol:{valType:\"string\",dflt:C7.DECREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.DECREASING.COLOR,editType:\"plot\"},editType:\"plot\"},font:Mx({},t$,{}),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:SXe({},eC,{color:{dflt:\"green\"}}),bgcolor:{valType:\"color\",editType:\"plot\"},bordercolor:{valType:\"color\",dflt:EXe.defaultLine,editType:\"plot\"},borderwidth:{valType:\"number\",min:0,dflt:1,editType:\"plot\"},axis:dYt({range:kXe,visible:Mx({},Bf.visible,{dflt:!0}),tickmode:Bf.minor.tickmode,nticks:Bf.nticks,tick0:Bf.tick0,dtick:Bf.dtick,tickvals:Bf.tickvals,ticktext:Bf.ticktext,ticks:Mx({},Bf.ticks,{dflt:\"outside\"}),ticklen:Bf.ticklen,tickwidth:Bf.tickwidth,tickcolor:Bf.tickcolor,ticklabelstep:Bf.ticklabelstep,showticklabels:Bf.showticklabels,labelalias:Bf.labelalias,tickfont:MXe({}),tickangle:Bf.tickangle,tickformat:Bf.tickformat,tickformatstops:Bf.tickformatstops,tickprefix:Bf.tickprefix,showtickprefix:Bf.showtickprefix,ticksuffix:Bf.ticksuffix,showticksuffix:Bf.showticksuffix,separatethousands:Bf.separatethousands,exponentformat:Bf.exponentformat,minexponent:Bf.minexponent,showexponent:Bf.showexponent,editType:\"plot\"},\"plot\"),steps:gYt,threshold:{line:{color:Mx({},eC.line.color,{}),width:Mx({},eC.line.width,{dflt:1}),editType:\"plot\"},thickness:Mx({},eC.thickness,{dflt:.85}),value:{valType:\"number\",editType:\"calc\",dflt:!1},editType:\"plot\"},editType:\"plot\"}}});var i$=ye((u2r,LXe)=>{\"use strict\";LXe.exports={defaultNumberFontSize:80,bulletNumberDomainSize:.25,bulletPadding:.025,innerRadius:.75,valueThickness:.5,titlePadding:5,horizontalPadding:10}});var RXe=ye((c2r,IXe)=>{\"use strict\";var ty=Dr(),P7=r$(),mYt=Cc().defaults,PXe=vl(),yYt=Yd(),L7=i$(),_Yt=bb(),xYt=S3(),bYt=e_(),wYt=t_();function TYt(e,t,r,n){function i(x,C){return ty.coerce(e,t,P7,x,C)}mYt(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=ty.extendFlat({},n.font);l.size=void 0,ty.coerceFont(i,\"number.font\",l),t.number.font.size===void 0&&(t.number.font.size=L7.defaultNumberFontSize,o[0]=!0),i(\"number.prefix\"),i(\"number.suffix\"),s=t.number.font.size}var u;if(t._hasDelta){var c=ty.extendFlat({},n.font);c.size=void 0,ty.coerceFont(i,\"delta.font\",c),t.delta.font.size===void 0&&(t.delta.font.size=(t._hasNumber?.5:1)*(s||L7.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=ty.extendFlat({},n.font);f.size=.25*(s||u||L7.defaultNumberFontSize),ty.coerceFont(i,\"title.font\",f),i(\"title.text\");var h,d,v,_;function b(x,C){return ty.coerce(h,d,P7.gauge,x,C)}function p(x,C){return ty.coerce(v,_,P7.gauge.axis,x,C)}if(t._hasGauge){h=e.gauge,h||(h={}),d=PXe.newContainer(t,\"gauge\"),b(\"shape\");var k=t._isBullet=t.gauge.shape===\"bullet\";k||i(\"title.align\",\"center\");var E=t._isAngular=t.gauge.shape===\"angular\";E||i(\"align\",\"center\"),b(\"bgcolor\",n.paper_bgcolor),b(\"borderwidth\"),b(\"bordercolor\"),b(\"bar.color\"),b(\"bar.line.color\"),b(\"bar.line.width\");var S=L7.valueThickness*(t.gauge.shape===\"bullet\"?.5:1);b(\"bar.thickness\",S),yYt(h,d,{name:\"steps\",handleItemDefaults:AYt}),b(\"threshold.value\"),b(\"threshold.thickness\"),b(\"threshold.line.width\"),b(\"threshold.line.color\"),v={},h&&(v=h.axis||{}),_=PXe.newContainer(d,\"axis\"),p(\"visible\"),t._range=p(\"range\",t._range);var L={font:n.font,noAutotickangles:!0,outerTicks:!0,noTicklabelshift:!0,noTicklabelstandoff:!0};_Yt(v,_,p,\"linear\"),wYt(v,_,p,\"linear\",L),bYt(v,_,p,\"linear\",L),xYt(v,_,p,L)}else i(\"title.align\",\"center\"),i(\"align\",\"center\"),t._isAngular=t._isBullet=!1;t._length=null}function AYt(e,t){function r(n,i){return ty.coerce(e,t,P7.gauge.steps,n,i)}r(\"color\"),r(\"line.color\"),r(\"line.width\"),r(\"range\"),r(\"thickness\")}IXe.exports={supplyDefaults:TYt}});var FXe=ye((f2r,DXe)=>{\"use strict\";function SYt(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}DXe.exports={calc:SYt}});var UXe=ye((h2r,NXe)=>{\"use strict\";var hw=Oa(),MYt=(D2(),ob(R2)).interpolate,zXe=(D2(),ob(R2)).interpolateNumber,Ex=Dr(),EYt=Ex.strScale,rC=Ex.strTranslate,kYt=Ex.rad2deg,CYt=$h().MID_SHIFT,fw=So(),lw=i$(),R7=ru(),sv=ho(),LYt=r4(),PYt=lI(),IYt=Rd(),O5=ka(),n$={left:\"start\",center:\"middle\",right:\"end\"},uw={left:0,center:.5,right:1},OXe=/[yzafpn\u00b5mkMGTPEZY]/;function iC(e){return e&&e.duration>0}NXe.exports=function(t,r,n,i){var a=t._fullLayout,o;iC(n)&&i&&(o=i()),Ex.makeTraceGroups(a._indicatorlayer,r,\"trace\").each(function(s){var l=s[0],u=l.trace,c=hw.select(this),f=u._hasGauge,h=u._isAngular,d=u._isBullet,v=u.domain,_={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=_.l+_.w/2,p=_.t+_.h/2,k=Math.min(_.w/2,_.h),E=lw.innerRadius*k,S,L,x,C=u.align||\"center\";if(L=p,!f)S=_.l+uw[C]*_.w,x=function(H){return qXe(H,_.w,_.h)};else if(h&&(S=b,L=p+k/2,x=function(H){return OYt(H,.9*E)}),d){var M=lw.bulletPadding,g=1-lw.bulletNumberDomainSize+M;S=_.l+(g+(1-g)*uw[C])*_.w,x=function(H){return qXe(H,(lw.bulletNumberDomainSize-M)*_.w,_.h)}}FYt(t,c,s,{numbersX:S,numbersY:L,numbersScaler:x,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 z=c.selectAll(\"g.angular\").data(h?s:[]);z.exit().remove();var O=c.selectAll(\"g.angularaxis\").data(h?s:[]);O.exit().remove(),h&&DYt(t,c,s,{radius:k,innerRadius:E,gauge:z,layer:O,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var V=c.selectAll(\"g.bullet\").data(d?s:[]);V.exit().remove();var G=c.selectAll(\"g.bulletaxis\").data(d?s:[]);G.exit().remove(),d&&RYt(t,c,s,{gauge:V,layer:G,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var Z=c.selectAll(\"text.title\").data(s);Z.exit().remove(),Z.enter().append(\"text\").classed(\"title\",!0),Z.attr(\"text-anchor\",function(){return d?n$.right:n$[u.title.align]}).text(u.title.text).call(fw.font,u.title.font).call(R7.convertToTspans,t),Z.attr(\"transform\",function(){var H=_.l+_.w*uw[u.title.align],N,j=lw.titlePadding,re=fw.bBox(Z.node());if(f){if(h)if(u.gauge.axis.visible){var oe=fw.bBox(O.node());N=oe.top-j-re.bottom}else N=_.t+_.h/2-k/2-re.bottom-j;d&&(N=L-(re.top+re.bottom)/2,H=_.l-lw.bulletPadding*_.w)}else N=u._numbersTop-j-re.bottom;return rC(H,N)})})};function RYt(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,_,b,p;a.enter().append(\"g\").classed(\"bullet\",!0),a.attr(\"transform\",rC(u.l,u.t)),o.enter().append(\"g\").classed(\"bulletaxis\",!0).classed(\"crisp\",!0),o.selectAll(\"g.xbulletaxistick,path,text\").remove();var k=u.h,E=i.gauge.bar.thickness*k,S=c.x[0],L=c.x[0]+(c.x[1]-c.x[0])*(i._hasNumber||i._hasDelta?1-lw.bulletNumberDomainSize:1);d=tC(e,i.gauge.axis),d._id=\"xbulletaxis\",d.domain=[S,L],d.setScale(),v=sv.calcTicks(d),_=sv.makeTransTickFn(d),b=sv.getTickSigns(d)[2],p=u.t+u.h,d.visible&&(sv.drawTicks(e,d,{vals:d.ticks===\"inside\"?sv.clipEnds(d,v):v,layer:o,path:sv.makeTickPath(d,p,b),transFn:_}),sv.drawLabels(e,d,{vals:v,layer:o,transFn:_,labelFns:sv.makeLabelFns(d,p)}));function x(O){O.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)*k}).attr(\"height\",function(V){return V.thickness*k})}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(x).call(cw),M.exit().remove();var g=a.selectAll(\"g.value-bullet\").data([i.gauge.bar]);g.enter().append(\"g\").classed(\"value-bullet\",!0).append(\"rect\"),g.select(\"rect\").attr(\"height\",E).attr(\"y\",(k-E)/2).call(cw),iC(f)?g.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)))):g.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),g.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*k).attr(\"y2\",(1-(1-i.gauge.threshold.thickness)/2)*k).call(O5.stroke,i.gauge.threshold.line.color).style(\"stroke-width\",i.gauge.threshold.line.width),T.exit().remove();var z=a.selectAll(\"g.gauge-outline\").data([l]);z.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"rect\"),z.select(\"rect\").call(x).call(cw),z.exit().remove()}function DYt(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,_=Math.PI/2;function b(_e){var Ee=i.gauge.axis.range[0],Ce=i.gauge.axis.range[1],me=(_e-Ee)/(Ce-Ee)*Math.PI-_;return me<-_?-_:me>_?_:me}function p(_e){return hw.svg.arc().innerRadius((s+o)/2-_e/2*(o-s)).outerRadius((s+o)/2+_e/2*(o-s)).startAngle(-_)}function k(_e){_e.attr(\"d\",function(Ee){return p(Ee.thickness).startAngle(b(Ee.range[0])).endAngle(b(Ee.range[1]))()})}var E,S,L,x;f.enter().append(\"g\").classed(\"angular\",!0),f.attr(\"transform\",rC(c[0],c[1])),h.enter().append(\"g\").classed(\"angularaxis\",!0).classed(\"crisp\",!0),h.selectAll(\"g.xangularaxistick,path,text\").remove(),E=tC(e,i.gauge.axis),E.type=\"linear\",E.range=i.gauge.axis.range,E._id=\"xangularaxis\",E.ticklabeloverflow=\"allow\",E.setScale();var C=function(_e){return(E.range[0]-_e.x)/(E.range[1]-E.range[0])*Math.PI+Math.PI},M={},g=sv.makeLabelFns(E,0),P=g.labelStandoff;M.xFn=function(_e){var Ee=C(_e);return Math.cos(Ee)*P},M.yFn=function(_e){var Ee=C(_e),Ce=Math.sin(Ee)>0?.2:1;return-Math.sin(Ee)*(P+_e.fontSize*Ce)+Math.abs(Math.cos(Ee))*(_e.fontSize*CYt)},M.anchorFn=function(_e){var Ee=C(_e),Ce=Math.cos(Ee);return Math.abs(Ce)<.1?\"middle\":Ce>0?\"start\":\"end\"},M.heightFn=function(_e,Ee,Ce){var me=C(_e);return-.5*(1+Math.sin(me))*Ce};var T=function(_e){return rC(c[0]+o*Math.cos(_e),c[1]-o*Math.sin(_e))};L=function(_e){return T(C(_e))};var z=function(_e){var Ee=C(_e);return T(Ee)+\"rotate(\"+-kYt(Ee)+\")\"};if(S=sv.calcTicks(E),x=sv.getTickSigns(E)[2],E.visible){x=E.ticks===\"inside\"?-1:1;var O=(E.linewidth||1)/2;sv.drawTicks(e,E,{vals:S,layer:h,path:\"M\"+x*O+\",0h\"+x*E.ticklen,transFn:z}),sv.drawLabels(e,E,{vals:S,layer:h,transFn:L,labelFns:M})}var V=[l].concat(i.gauge.steps),G=f.selectAll(\"g.bg-arc\").data(V);G.enter().append(\"g\").classed(\"bg-arc\",!0).append(\"path\"),G.select(\"path\").call(k).call(cw),G.exit().remove();var Z=p(i.gauge.bar.thickness),H=f.selectAll(\"g.value-arc\").data([i.gauge.bar]);H.enter().append(\"g\").classed(\"value-arc\",!0).append(\"path\");var N=H.select(\"path\");iC(d)?(N.transition().duration(d.duration).ease(d.easing).each(\"end\",function(){v&&v()}).each(\"interrupt\",function(){v&&v()}).attrTween(\"d\",zYt(Z,b(r[0].lastY),b(r[0].y))),i._lastValue=r[0].y):N.attr(\"d\",typeof r[0].y==\"number\"?Z.endAngle(b(r[0].y)):\"M0,0Z\"),N.call(cw),H.exit().remove(),V=[];var j=i.gauge.threshold.value;(j||j===0)&&V.push({range:[j,j],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(k).call(cw),re.exit().remove();var oe=f.selectAll(\"g.gauge-outline\").data([u]);oe.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"path\"),oe.select(\"path\").call(k).call(cw),oe.exit().remove()}function FYt(e,t,r,n){var i=r[0].trace,a=n.numbersX,o=n.numbersY,s=i.align||\"center\",l=n$[s],u=n.transitionOpts,c=n.onComplete,f=Ex.ensureSingle(t,\"g\",\"numbers\"),h,d,v,_=[];i._hasNumber&&_.push(\"number\"),i._hasDelta&&(_.push(\"delta\"),i.delta.position===\"left\"&&_.reverse());var b=f.selectAll(\"text\").data(_);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 p(T,z,O,V){if(T.match(\"s\")&&O>=0!=V>=0&&!z(O).slice(-1).match(OXe)&&!z(V).slice(-1).match(OXe)){var G=T.slice().replace(\"s\",\"f\").replace(/\\d+/,function(H){return parseInt(H)-1}),Z=tC(e,{tickformat:G});return function(H){return Math.abs(H)<1?sv.tickText(Z,H).text:z(H)}}else return z}function k(){var T=tC(e,{tickformat:i.number.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(H){return sv.tickText(T,H).text},O=i.number.suffix,V=i.number.prefix,G=f.select(\"text.number\");function Z(){var H=typeof r[0].y==\"number\"?V+z(r[0].y)+O:\"-\";G.text(H).call(fw.font,i.number.font).call(R7.convertToTspans,e)}return iC(u)?G.transition().duration(u.duration).ease(u.easing).each(\"end\",function(){Z(),c&&c()}).each(\"interrupt\",function(){Z(),c&&c()}).attrTween(\"text\",function(){var H=hw.select(this),N=zXe(r[0].lastY,r[0].y);i._lastValue=r[0].y;var j=p(i.number.valueformat,z,r[0].lastY,r[0].y);return function(re){H.text(V+j(N(re))+O)}}):Z(),h=BXe(V+z(r[0].y)+O,i.number.font,l,e),G}function E(){var T=tC(e,{tickformat:i.delta.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(re){return sv.tickText(T,re).text},O=i.delta.suffix,V=i.delta.prefix,G=function(re){var oe=i.delta.relative?re.relativeDelta:re.delta;return oe},Z=function(re,oe){return re===0||typeof re!=\"number\"||isNaN(re)?\"-\":(re>0?i.delta.increasing.symbol:i.delta.decreasing.symbol)+V+oe(re)+O},H=function(re){return re.delta>=0?i.delta.increasing.color:i.delta.decreasing.color};i._deltaLastValue===void 0&&(i._deltaLastValue=G(r[0]));var N=f.select(\"text.delta\");N.call(fw.font,i.delta.font).call(O5.fill,H({delta:i._deltaLastValue}));function j(){N.text(Z(G(r[0]),z)).call(O5.fill,H(r[0])).call(R7.convertToTspans,e)}return iC(u)?N.transition().duration(u.duration).ease(u.easing).tween(\"text\",function(){var re=hw.select(this),oe=G(r[0]),_e=i._deltaLastValue,Ee=p(i.delta.valueformat,z,_e,oe),Ce=zXe(_e,oe);return i._deltaLastValue=oe,function(me){re.text(Z(Ce(me),Ee)),re.call(O5.fill,H({delta:Ce(me)}))}}).each(\"end\",function(){j(),c&&c()}).each(\"interrupt\",function(){j(),c&&c()}):j(),d=BXe(Z(G(r[0]),z),i.delta.font,l,e),N}var S=i.mode+i.align,L;if(i._hasDelta&&(L=E(),S+=i.delta.position+i.delta.font.size+i.delta.font.family+i.delta.valueformat,S+=i.delta.increasing.symbol+i.delta.decreasing.symbol,v=d),i._hasNumber&&(k(),S+=i.number.font.size+i.number.font.family+i.number.valueformat+i.number.suffix+i.number.prefix,v=h),i._hasDelta&&i._hasNumber){var x=[(h.left+h.right)/2,(h.top+h.bottom)/2],C=[(d.left+d.right)/2,(d.top+d.bottom)/2],M,g,P=.75*i.delta.font.size;i.delta.position===\"left\"&&(M=I7(i,\"deltaPos\",0,-1*(h.width*uw[i.align]+d.width*(1-uw[i.align])+P),S,Math.min),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"right\"&&(M=I7(i,\"deltaPos\",0,h.width*(1-uw[i.align])+d.width*uw[i.align]+P,S,Math.max),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"bottom\"&&(M=null,g=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,g=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:g})}(i._hasNumber||i._hasDelta)&&f.attr(\"transform\",function(){var T=n.numbersScaler(v);S+=T[2];var z=I7(i,\"numbersScale\",1,T[0],S,Math.min),O;i._scaleNumbers||(z=1),i._isAngular?O=o-z*v.bottom:O=o-z*(v.top+v.bottom)/2,i._numbersTop=z*v.top+O;var V=v[s];s===\"center\"&&(V=(v.left+v.right)/2);var G=a-z*V;return G=I7(i,\"numbersTranslate\",0,G,S,Math.max),rC(G,O)+EYt(z)})}function cw(e){e.each(function(t){O5.stroke(hw.select(this),t.line.color)}).each(function(t){O5.fill(hw.select(this),t.color)}).style(\"stroke-width\",function(t){return t.line.width})}function zYt(e,t,r){return function(){var n=MYt(t,r);return function(i){return e.endAngle(n(i))()}}}function tC(e,t,r){var n=e._fullLayout,i=Ex.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 Ex.coerce(i,a,IYt,l,u)}return LYt(i,a,s,o,n),PYt(i,a,s,o),a}function qXe(e,t,r){var n=Math.min(t/e.width,r/e.height);return[n,e,t+\"x\"+r]}function OYt(e,t){var r=Math.sqrt(e.width/2*(e.width/2)+e.height*e.height),n=t/r;return[n,e,t]}function BXe(e,t,r,n){var i=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\"),a=hw.select(i);return a.text(e).attr(\"x\",0).attr(\"y\",0).attr(\"text-anchor\",r).attr(\"data-unformatted\",e).call(R7.convertToTspans,n).call(fw.font,t),fw.bBox(a.node())}function I7(e,t,r,n,i,a){var o=\"_cache\"+t;e[o]&&e[o].key===i||(e[o]={key:i,value:r});var s=Ex.aggNums(a,null,[e[o].value,n],2);return e[o].value=s,s}});var GXe=ye((d2r,VXe)=>{\"use strict\";VXe.exports={moduleType:\"trace\",name:\"indicator\",basePlotModule:TXe(),categories:[\"svg\",\"noOpacity\",\"noHover\"],animatable:!0,attributes:r$(),supplyDefaults:RXe().supplyDefaults,calc:FXe().calc,plot:UXe(),meta:{}}});var jXe=ye((v2r,HXe)=>{\"use strict\";HXe.exports=GXe()});var a$=ye((g2r,YXe)=>{\"use strict\";var WXe=Ub(),D7=Ao().extendFlat,qYt=mc().overrideAll,XXe=ec(),BYt=Cc().attributes,ZXe=df().descriptionOnlyNumbers,p2r=YXe.exports=qYt({domain:BYt({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:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:28},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))},cells:{values:{valType:\"data_array\",dflt:[]},format:{valType:\"data_array\",dflt:[],description:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:20},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))}},\"calc\",\"from-root\")});var JXe=ye((m2r,KXe)=>{\"use strict\";var o$=Dr(),NYt=a$(),UYt=Cc().defaults;function VYt(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 GYt=Jm().wrap;$Xe.exports=function(){return GYt({})}});var s$=ye((_2r,eZe)=>{\"use strict\";eZe.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 uZe=ye((x2r,lZe)=>{\"use strict\";var tZe=s$(),u$=Ao().extendFlat,HYt=Eo(),jYt=vv().isTypedArray,F7=vv().isArrayOrTypedArray;lZe.exports=function(t,r){var n=l$(r.cells.values),i=function(g){return g.slice(r.header.values.length,g.length)},a=l$(r.header.values);a.length&&!a[0].length&&(a[0]=[\"\"],a=l$(a));var o=a.concat(i(n).map(function(){return sZe((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}):[tZe.emptyHeaderHeight],f=n.length?n[0].map(function(){return r.cells.height}):[],h=c.reduce(rZe,0),d=u-h,v=d+tZe.uplift,_=aZe(f,v),b=aZe(c,h),p=nZe(b,[]),k=nZe(_,p),E={},S=r._fullInput.columnorder;F7(S)&&(S=Array.from(S)),S=S.concat(i(n.map(function(g,P){return P})));var L=o.map(function(g,P){var T=F7(r.columnwidth)?r.columnwidth[Math.min(P,r.columnwidth.length-1)]:r.columnwidth;return HYt(T)?Number(T):1}),x=L.reduce(rZe,0);L=L.map(function(g){return g/x*l});var C=Math.max(c$(r.header.line.width),c$(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:S,groupHeight:u,rowBlocks:k,headerRowBlocks:p,scrollY:0,cells:u$({},r.cells,{values:n}),headerCells:u$({},r.header,{values:o}),gdColumns:o.map(function(g){return g[0]}),gdColumnsOriginalOrder:o.map(function(g){return g[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:o.map(function(g,P){var T=E[g];E[g]=(T||0)+1;var z=g+\"__\"+E[g];return{key:z,label:g,specIndex:P,xIndex:S[P],xScale:iZe,x:void 0,calcdata:void 0,columnWidth:L[P]}})};return M.columns.forEach(function(g){g.calcdata=M,g.x=iZe(g)}),M};function c$(e){if(F7(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=oZe(),i+=a,s=u+1,a=0);return r}function oZe(){return{firstRowIndex:null,lastRowIndex:null,rows:[]}}});var cZe=ye(f$=>{\"use strict\";var z7=Ao().extendFlat;f$.splitToPanels=function(e){var t=[0,0],r=z7({},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:z7({},e.calcdata,{cells:e.calcdata.headerCells})}),n=z7({},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=z7({},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]};f$.splitToCells=function(e){var t=WYt(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 WYt(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 b$=ye((w2r,bZe)=>{\"use strict\";var Ya=s$(),tf=Oa(),h$=Dr(),XYt=h$.numberFormat,Uu=Jm(),d$=So(),ZYt=ru(),YYt=Dr().raiseToTop,og=Dr().strTranslate,KYt=Dr().cancelTransition,JYt=uZe(),mZe=cZe(),fZe=ka();bZe.exports=function(t,r){var n=!t._context.staticPlot,i=t._fullLayout._paper.selectAll(\".\"+Ya.cn.table).data(r.map(function(k){var E=Uu.unwrap(k),S=E.trace;return JYt(t,S)}),Uu.keyFun);i.exit().remove(),i.enter().append(\"g\").classed(Ya.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(k){return k.width+k.size.l+k.size.r}).attr(\"height\",function(k){return k.height+k.size.t+k.size.b}).attr(\"transform\",function(k){return og(k.translateX,k.translateY)});var a=i.selectAll(\".\"+Ya.cn.tableControlView).data(Uu.repeat,Uu.keyFun),o=a.enter().append(\"g\").classed(Ya.cn.tableControlView,!0).style(\"box-sizing\",\"content-box\");if(n){var s=\"onwheel\"in document?\"wheel\":\"mousewheel\";o.on(\"mousemove\",function(k){a.filter(function(E){return k===E}).call(nC,t)}).on(s,function(k){if(!k.scrollbarState.wheeling){k.scrollbarState.wheeling=!0;var E=k.scrollY+tf.event.deltaY,S=q7(t,a,null,E)(k);S||(tf.event.stopPropagation(),tf.event.preventDefault()),k.scrollbarState.wheeling=!1}}).call(nC,t,!0)}a.attr(\"transform\",function(k){return og(k.size.l,k.size.t)});var l=a.selectAll(\".\"+Ya.cn.scrollBackground).data(Uu.repeat,Uu.keyFun);l.enter().append(\"rect\").classed(Ya.cn.scrollBackground,!0).attr(\"fill\",\"none\"),l.attr(\"width\",function(k){return k.width}).attr(\"height\",function(k){return k.height}),a.each(function(k){d$.setClipUrl(tf.select(this),hZe(t,k),t)});var u=a.selectAll(\".\"+Ya.cn.yColumn).data(function(k){return k.columns},Uu.keyFun);u.enter().append(\"g\").classed(Ya.cn.yColumn,!0),u.exit().remove(),u.attr(\"transform\",function(k){return og(k.x,0)}),n&&u.call(tf.behavior.drag().origin(function(k){var E=tf.select(this);return pZe(E,k,-Ya.uplift),YYt(this),k.calcdata.columnDragInProgress=!0,nC(a.filter(function(S){return k.calcdata.key===S.key}),t),k}).on(\"drag\",function(k){var E=tf.select(this),S=function(C){return(k===C?tf.event.x:C.x)+C.columnWidth/2};k.x=Math.max(-Ya.overdrag,Math.min(k.calcdata.width+Ya.overdrag-k.columnWidth,tf.event.x));var L=yZe(u).filter(function(C){return C.calcdata.key===k.calcdata.key}),x=L.sort(function(C,M){return S(C)-S(M)});x.forEach(function(C,M){C.xIndex=M,C.x=k===C?C.x:C.xScale(C)}),u.filter(function(C){return k!==C}).transition().ease(Ya.transitionEase).duration(Ya.transitionDuration).attr(\"transform\",function(C){return og(C.x,0)}),E.call(KYt).attr(\"transform\",og(k.x,-Ya.uplift))}).on(\"dragend\",function(k){var E=tf.select(this),S=k.calcdata;k.x=k.xScale(k),k.calcdata.columnDragInProgress=!1,pZe(E,k,0),sKt(t,S,S.columns.map(function(L){return L.xIndex}))})),u.each(function(k){d$.setClipUrl(tf.select(this),dZe(t,k),t)});var c=u.selectAll(\".\"+Ya.cn.columnBlock).data(mZe.splitToPanels,Uu.keyFun);c.enter().append(\"g\").classed(Ya.cn.columnBlock,!0).attr(\"id\",function(k){return k.key}),c.style(\"cursor\",function(k){return k.dragHandle?\"ew-resize\":k.calcdata.scrollbarState.barWiggleRoom?\"ns-resize\":\"default\"});var f=c.filter(lKt),h=c.filter(y$);n&&h.call(tf.behavior.drag().origin(function(k){return tf.event.stopPropagation(),k}).on(\"drag\",q7(t,a,-1)).on(\"dragend\",function(){})),v$(t,a,f,c),v$(t,a,h,c);var d=a.selectAll(\".\"+Ya.cn.scrollAreaClip).data(Uu.repeat,Uu.keyFun);d.enter().append(\"clipPath\").classed(Ya.cn.scrollAreaClip,!0).attr(\"id\",function(k){return hZe(t,k)});var v=d.selectAll(\".\"+Ya.cn.scrollAreaClipRect).data(Uu.repeat,Uu.keyFun);v.enter().append(\"rect\").classed(Ya.cn.scrollAreaClipRect,!0).attr(\"x\",-Ya.overdrag).attr(\"y\",-Ya.uplift).attr(\"fill\",\"none\"),v.attr(\"width\",function(k){return k.width+2*Ya.overdrag}).attr(\"height\",function(k){return k.height+Ya.uplift});var _=u.selectAll(\".\"+Ya.cn.columnBoundary).data(Uu.repeat,Uu.keyFun);_.enter().append(\"g\").classed(Ya.cn.columnBoundary,!0);var b=u.selectAll(\".\"+Ya.cn.columnBoundaryClippath).data(Uu.repeat,Uu.keyFun);b.enter().append(\"clipPath\").classed(Ya.cn.columnBoundaryClippath,!0),b.attr(\"id\",function(k){return dZe(t,k)});var p=b.selectAll(\".\"+Ya.cn.columnBoundaryRect).data(Uu.repeat,Uu.keyFun);p.enter().append(\"rect\").classed(Ya.cn.columnBoundaryRect,!0).attr(\"fill\",\"none\"),p.attr(\"width\",function(k){return k.columnWidth+2*O7(k)}).attr(\"height\",function(k){return k.calcdata.height+2*O7(k)+Ya.uplift}).attr(\"x\",function(k){return-O7(k)}).attr(\"y\",function(k){return-O7(k)}),_$(null,h,a)};function O7(e){return Math.ceil(e.calcdata.maxLineWidth/2)}function hZe(e,t){return\"clip\"+e._fullLayout._uid+\"_scrollAreaBottomClip_\"+t.key}function dZe(e,t){return\"clip\"+e._fullLayout._uid+\"_columnBoundaryClippath_\"+t.calcdata.key+\"_\"+t.specIndex}function yZe(e){return[].concat.apply([],e.map(function(t){return t})).map(function(t){return t.__data__})}function nC(e,t,r){function n(u){var c=u.rowBlocks;return g$(c,c.length-1)+(c.length?B7(c[c.length-1],1/0):1)}var i=e.selectAll(\".\"+Ya.cn.scrollbarKit).data(Uu.repeat,Uu.keyFun);i.enter().append(\"g\").classed(Ya.cn.scrollbarKit,!0).style(\"shape-rendering\",\"geometricPrecision\"),i.each(function(u){var c=u.scrollbarState;c.totalHeight=n(u),c.scrollableAreaHeight=u.groupHeight-p$(u),c.currentlyVisibleHeight=Math.min(c.totalHeight,c.scrollableAreaHeight),c.ratio=c.currentlyVisibleHeight/c.totalHeight,c.barLength=Math.max(c.ratio*c.currentlyVisibleHeight,Ya.goldenRatio*Ya.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+Ya.scrollbarWidth/2+Ya.scrollbarOffset;return og(c,p$(u))});var a=i.selectAll(\".\"+Ya.cn.scrollbar).data(Uu.repeat,Uu.keyFun);a.enter().append(\"g\").classed(Ya.cn.scrollbar,!0);var o=a.selectAll(\".\"+Ya.cn.scrollbarSlider).data(Uu.repeat,Uu.keyFun);o.enter().append(\"g\").classed(Ya.cn.scrollbarSlider,!0),o.attr(\"transform\",function(u){return og(0,u.scrollbarState.topY||0)});var s=o.selectAll(\".\"+Ya.cn.scrollbarGlyph).data(Uu.repeat,Uu.keyFun);s.enter().append(\"line\").classed(Ya.cn.scrollbarGlyph,!0).attr(\"stroke\",\"black\").attr(\"stroke-width\",Ya.scrollbarWidth).attr(\"stroke-linecap\",\"round\").attr(\"y1\",Ya.scrollbarWidth/2),s.attr(\"y2\",function(u){return u.scrollbarState.barLength-Ya.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(Ya.scrollbarHideDelay).duration(Ya.scrollbarHideDuration).attr(\"stroke-opacity\",0);var l=a.selectAll(\".\"+Ya.cn.scrollbarCaptureZone).data(Uu.repeat,Uu.keyFun);l.enter().append(\"line\").classed(Ya.cn.scrollbarCaptureZone,!0).attr(\"stroke\",\"white\").attr(\"stroke-opacity\",.01).attr(\"stroke-width\",Ya.scrollbarCaptureWidth).attr(\"stroke-linecap\",\"butt\").attr(\"y1\",0).on(\"mousedown\",function(u){var c=tf.event.y,f=this.getBoundingClientRect(),h=u.scrollbarState,d=c-f.top,v=tf.scale.linear().domain([0,h.scrollableAreaHeight]).range([0,h.totalHeight]).clamp(!0);h.topY<=d&&d<=h.bottomY||q7(t,e,null,v(d-h.barLength/2))(u)}).call(tf.behavior.drag().origin(function(u){return tf.event.stopPropagation(),u.scrollbarState.scrollbarScrollInProgress=!0,u}).on(\"drag\",q7(t,e)).on(\"dragend\",function(){})),l.attr(\"y2\",function(u){return u.scrollbarState.scrollableAreaHeight}),t._context.staticPlot&&(s.remove(),l.remove())}function v$(e,t,r,n){var i=$Yt(r),a=QYt(i);iKt(a);var o=eKt(a);aKt(o);var s=rKt(a),l=tKt(s);nKt(l),_Ze(l,t,n,e),x$(a)}function $Yt(e){var t=e.selectAll(\".\"+Ya.cn.columnCells).data(Uu.repeat,Uu.keyFun);return t.enter().append(\"g\").classed(Ya.cn.columnCells,!0),t.exit().remove(),t}function QYt(e){var t=e.selectAll(\".\"+Ya.cn.columnCell).data(mZe.splitToCells,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.columnCell,!0),t.exit().remove(),t}function eKt(e){var t=e.selectAll(\".\"+Ya.cn.cellRect).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"rect\").classed(Ya.cn.cellRect,!0),t}function tKt(e){var t=e.selectAll(\".\"+Ya.cn.cellText).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"text\").classed(Ya.cn.cellText,!0).style(\"cursor\",function(){return\"auto\"}).on(\"mousedown\",function(){tf.event.stopPropagation()}),t}function rKt(e){var t=e.selectAll(\".\"+Ya.cn.cellTextHolder).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.cellTextHolder,!0).style(\"shape-rendering\",\"geometricPrecision\"),t}function iKt(e){e.each(function(t,r){var n=t.calcdata.cells.font,i=t.column.specIndex,a={size:Yv(n.size,i,r),color:Yv(n.color,i,r),family:Yv(n.family,i,r),weight:Yv(n.weight,i,r),style:Yv(n.style,i,r),variant:Yv(n.variant,i,r),textcase:Yv(n.textcase,i,r),lineposition:Yv(n.lineposition,i,r),shadow:Yv(n.shadow,i,r)};t.rowNumber=t.key,t.align=Yv(t.calcdata.cells.align,i,r),t.cellBorderWidth=Yv(t.calcdata.cells.line.width,i,r),t.font=a})}function nKt(e){e.each(function(t){d$.font(tf.select(this),t.font)})}function aKt(e){e.attr(\"width\",function(t){return t.column.columnWidth}).attr(\"stroke-width\",function(t){return t.cellBorderWidth}).each(function(t){var r=tf.select(this);fZe.stroke(r,Yv(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),fZe.fill(r,Yv(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}function _Ze(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=oKt(s);i.latex=f;var h=f?\"\":Yv(i.calcdata.cells.prefix,a,o)||\"\",d=f?\"\":Yv(i.calcdata.cells.suffix,a,o)||\"\",v=f?null:Yv(i.calcdata.cells.format,a,o)||null,_=h+(v?XYt(v)(i.value):i.value)+d,b;i.wrappingNeeded=!i.wrapped&&!c&&!f&&(b=vZe(_)),i.cellHeightMayIncrease=u||f||i.mayHaveMarkup||(b===void 0?vZe(_):b),i.needsConvertToTspans=i.mayHaveMarkup||i.wrappingNeeded||i.latex;var p;if(i.wrappingNeeded){var k=Ya.wrapSplitCharacter===\" \"?_.replace(/i&&n.push(a),i+=l}return n}function _$(e,t,r){var n=yZe(t)[0];if(n!==void 0){var i=n.rowBlocks,a=n.calcdata,o=g$(i,i.length),s=n.calcdata.groupHeight-p$(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),u=uKt(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=g$(c.rowBlocks,c.page)-c.scrollY;return og(0,f)}),e&&(gZe(e,r,t,u,n.prevPages,n,0),gZe(e,r,t,u,n.prevPages,n,1),nC(r,e))}}function q7(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*tf.event.dy:n;var c=s.selectAll(\".\"+Ya.cn.yColumn).selectAll(\".\"+Ya.cn.columnBlock).filter(y$);return _$(e,c,s),o.scrollY===u}}function gZe(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]});v$(e,t,l,r),i[o]=n[o]}))}function cKt(e,t,r,n){return function(){var a=tf.select(t.parentNode);a.each(function(o){var s=o.fragments;a.selectAll(\"tspan.line\").each(function(_,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*Ya.cellPad;for(o.value=\"\";u.length;)f=u.shift(),h=f.width+l,d+h>v&&(o.value+=c.join(Ya.wrapSpacer)+Ya.lineBreaker,c=[],d=0),c.push(f.text),d+=h;d&&(o.value+=c.join(Ya.wrapSpacer)),o.wrapped=!0}),a.selectAll(\"tspan.line\").remove(),_Ze(a.select(\".\"+Ya.cn.cellText),r,e,n),tf.select(t.parentNode.parentNode).call(x$)}}function fKt(e,t,r,n,i){return function(){if(!i.settledY){var o=tf.select(t.parentNode),s=m$(i),l=i.key-s.firstRowIndex,u=s.rows[l].rowHeight,c=i.cellHeightMayIncrease?t.parentNode.getBoundingClientRect().height+2*Ya.cellPad:u,f=Math.max(c,u),h=f-s.rows[l].rowHeight;h&&(s.rows[l].rowHeight=f,e.selectAll(\".\"+Ya.cn.columnCell).call(x$),_$(null,e.filter(y$),0),nC(r,n,!0)),o.attr(\"transform\",function(){var d=this,v=d.parentNode,_=v.getBoundingClientRect(),b=tf.select(d.parentNode).select(\".\"+Ya.cn.cellRect).node().getBoundingClientRect(),p=d.transform.baseVal.consolidate(),k=b.top-_.top+(p?p.matrix.f:Ya.cellPad);return og(xZe(i,tf.select(d.parentNode).select(\".\"+Ya.cn.cellTextHolder).node().getBoundingClientRect().width),k)}),i.settledY=!0}}}function xZe(e,t){switch(e.align){case\"left\":return Ya.cellPad;case\"right\":return e.column.columnWidth-(t||0)-Ya.cellPad;case\"center\":return(e.column.columnWidth-(t||0))/2;default:return Ya.cellPad}}function x$(e){e.attr(\"transform\",function(t){var r=t.rowBlocks[0].auxiliaryBlocks.reduce(function(o,s){return o+B7(s,1/0)},0),n=m$(t),i=B7(n,t.key),a=i+r;return og(0,a)}).selectAll(\".\"+Ya.cn.cellRect).attr(\"height\",function(t){return dKt(m$(t),t.key).rowHeight})}function g$(e,t){for(var r=0,n=t-1;n>=0;n--)r+=hKt(e[n]);return r}function B7(e,t){for(var r=0,n=0;n{\"use strict\";var vKt=Id().getModuleCalcData,pKt=b$(),N7=\"table\";U7.name=N7;U7.plot=function(e){var t=vKt(e.calcdata,N7)[0];t.length&&pKt(e,t)};U7.clean=function(e,t,r,n){var i=n._has&&n._has(N7),a=t._has&&t._has(N7);i&&!a&&n._paperdiv.selectAll(\".table\").remove()}});var AZe=ye((A2r,TZe)=>{\"use strict\";TZe.exports={attributes:a$(),supplyDefaults:JXe(),calc:QXe(),plot:b$(),moduleType:\"trace\",name:\"table\",basePlotModule:wZe(),categories:[\"noOpacity\"],meta:{}}});var MZe=ye((S2r,SZe)=>{\"use strict\";SZe.exports=AZe()});var PZe=ye((M2r,LZe)=>{\"use strict\";var EZe=ec(),kZe=Lh(),w$=Rd(),gKt=df().descriptionWithDates,mKt=mc().overrideAll,CZe=Pd().dash,T$=Ao().extendFlat;LZe.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:EZe({editType:\"calc\"}),offset:{valType:\"number\",dflt:10,editType:\"calc\"},editType:\"calc\"},type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"date\",\"category\"],dflt:\"-\",editType:\"calc\"},autotypenumbers:w$.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:T$({},w$.labelalias,{editType:\"calc\"}),tickfont:EZe({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\",\"SI extended\"],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:gKt(\"tick label\")},tickformatstops:mKt(w$.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:kZe.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:T$({},CZe,{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:T$({},CZe,{editType:\"calc\"}),minorgridcolor:{valType:\"color\",dflt:kZe.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 G7=ye((E2r,DZe)=>{\"use strict\";var yKt=ec(),IZe=PZe(),RZe=Lh(),V7=yKt({editType:\"calc\"}),_Kt=pf().zorder;V7.family.dflt='\"Open Sans\", verdana, arial, sans-serif';V7.size.dflt=12;V7.color.dflt=RZe.defaultLine;DZe.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:IZe,baxis:IZe,font:V7,color:{valType:\"color\",dflt:RZe.defaultLine,editType:\"plot\"},zorder:_Kt}});var OZe=ye((k2r,zZe)=>{\"use strict\";var FZe=Dr().isArray1D;zZe.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||FZe(i))&&(!s||FZe(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 NZe=ye((C2r,BZe)=>{\"use strict\";var xKt=G7(),qZe=ka().addOpacity,bKt=qa(),aC=Dr(),wKt=bb(),TKt=e_(),AKt=t_(),SKt=aI(),MKt=ym(),EKt=I3();BZe.exports=function(t,r,n){var i=n.letter,a=n.font||{},o=xKt[i+\"axis\"];function s(g,P){return aC.coerce(t,r,o,g,P)}function l(g,P){return aC.coerce2(t,r,o,g,P)}n.name&&(r._name=n.name,r._id=n.name),s(\"autotypenumbers\",n.autotypenumbersDflt);var u=s(\"type\");if(u===\"-\"&&(n.data&&kKt(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=bKt.getComponentMethod(\"calendars\",\"handleDefaults\");c(t,r,\"calendar\",n.calendar)}MKt(r,n.fullLayout),r.c2p=aC.identity;var f=s(\"color\",n.dfltColor),h=f===t.color?f:a.color,d=s(\"title.text\");d&&(aC.coerceFont(s,\"title.font\",a,{overrideDflt:{size:aC.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\"),wKt(t,r,s,u),AKt(t,r,s,u,n),TKt(t,r,s,u,n),SKt(t,r,s,{data:n.data,dataAttr:i});var _=l(\"gridcolor\",qZe(f,.3)),b=l(\"gridwidth\"),p=l(\"griddash\"),k=s(\"showgrid\");k||(delete r.gridcolor,delete r.gridwidth,delete r.griddash);var E=l(\"startlinecolor\",f),S=l(\"startlinewidth\",b),L=s(\"startline\",r.showgrid||!!E||!!S);L||(delete r.startlinecolor,delete r.startlinewidth);var x=l(\"endlinecolor\",f),C=l(\"endlinewidth\",b),M=s(\"endline\",r.showgrid||!!x||!!C);return M||(delete r.endlinecolor,delete r.endlinewidth),k?(s(\"minorgridcount\"),s(\"minorgridwidth\",b),s(\"minorgriddash\",p),s(\"minorgridcolor\",qZe(_,.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 kKt(e,t){if(e.type===\"-\"){var r=e._id,n=r.charAt(0),i=n+\"calendar\",a=e[i];e.type=EKt(t,a,{autotypenumbers:e.autotypenumbers})}}});var VZe=ye((L2r,UZe)=>{\"use strict\";var CKt=NZe(),LKt=vl();UZe.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\")),PKt(t,r,n,a)};function PKt(e,t,r,n){var i=[\"aaxis\",\"baxis\"];i.forEach(function(a){var o=a.charAt(0),s=e[a]||{},l=LKt.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};CKt(s,l,u),l._categories=l._categories||[],!e[a]&&s.type!==\"-\"&&(e[a]={type:s.type})})}});var jZe=ye((P2r,HZe)=>{\"use strict\";var GZe=Dr(),IKt=OZe(),RKt=VZe(),DKt=G7(),FKt=Lh();HZe.exports=function(t,r,n,i){function a(l,u){return GZe.coerce(t,r,DKt,l,u)}r._clipPathId=\"clip\"+r.uid+\"carpet\";var o=a(\"color\",FKt.defaultLine);if(GZe.coerceFont(a,\"font\",i.font),a(\"carpet\"),RKt(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=IKt(t,r,a);s||(r.visible=!1),r._cheater&&a(\"cheaterslope\"),a(\"zorder\")}});var A$=ye((I2r,WZe)=>{\"use strict\";var zKt=Dr().isArrayOrTypedArray;WZe.exports=function(t,r,n){var i;for(zKt(t)?t.length>r.length&&(t=t.slice(0,r.length)):t=[],i=0;i{\"use strict\";XZe.exports=function(t,r,n){if(t.length===0)return\"\";var i,a=[],o=n?3:1;for(i=0;i{\"use strict\";ZZe.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 iYe=ye((F2r,rYe)=>{\"use strict\";var X7=Oa(),H7=So(),j7=A$(),$Ze=S$(),oC=YZe(),M$=ru(),Up=Dr(),QZe=Up.strRotate,W7=Up.strTranslate,eYe=$h();rYe.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=X7.select(this),h=c[0],d=h.trace,v=d.aaxis,_=d.baxis,b=Up.ensureSingle(f,\"g\",\"minorlayer\"),p=Up.ensureSingle(f,\"g\",\"majorlayer\"),k=Up.ensureSingle(f,\"g\",\"boundarylayer\"),E=Up.ensureSingle(f,\"g\",\"labellayer\");f.style(\"opacity\",d.opacity),q5(o,s,p,v,\"a\",v._gridlines,!0,a),q5(o,s,p,_,\"b\",_._gridlines,!0,a),q5(o,s,b,v,\"a\",v._minorgridlines,!0,a),q5(o,s,b,_,\"b\",_._minorgridlines,!0,a),q5(o,s,k,v,\"a-boundary\",v._boundarylines,a),q5(o,s,k,_,\"b-boundary\",_._boundarylines,a);var S=KZe(t,o,s,d,h,E,v._labels,\"a-label\"),L=KZe(t,o,s,d,h,E,_._labels,\"b-label\");qKt(t,E,d,h,o,s,S,L),OKt(d,h,u,o,s)})};function OKt(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(H7.font,f.font).text(f.text).call(M$.convertToTspans,e),p=H7.bBox(this);b.attr(\"transform\",W7(d.p[0],d.p[1])+QZe(d.angle)+W7(f.axis.labelpadding*_,p.height*.3)),u=Math.max(u,p.width+f.axis.labelpadding)}),l.exit().remove(),c.maxExtent=u,c}function qKt(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),_=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,oC(r,i,a,c,r.dxydb_rough(l,u))),JZe(e,t,r,n,c,f,r.aaxis,i,a,o,\"a-title\"),l=h,u=.5*(v+_),c=r.ab2xy(l,u,!0),f=r.dxydb_rough(l,u),s.angle===void 0&&Up.extendFlat(s,oC(r,i,a,c,r.dxyda_rough(l,u))),JZe(e,t,r,n,c,f,r.baxis,i,a,s,\"b-title\")}var tYe=eYe.LINE_SPACING,BKt=(1-eYe.MID_SHIFT)/tYe+1;function JZe(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=oC(r,s,l,i,a);[\"start\",\"both\"].indexOf(o.showticklabels)===-1&&(d=0);var _=o.title.font.size;d+=_+o.title.offset;var b=u.angle+(u.flip<0?180:0),p=(b-v.angle+450)%360,k=p>90&&p<270,E=X7.select(this);E.text(o.title.text).call(M$.convertToTspans,e),k&&(d=(-M$.lineCount(E)+BKt)*tYe*_-d),E.attr(\"transform\",W7(v.p[0],v.p[1])+QZe(v.angle)+W7(0,d)).attr(\"text-anchor\",\"middle\").call(H7.font,o.title.font)}),h.exit().remove()}});var aYe=ye((z2r,nYe)=>{\"use strict\";var Z7=Dr().isArrayOrTypedArray;nYe.exports=function(e,t,r){var n,i,a,o,s,l,u=[],c=Z7(e)?e.length:e,f=Z7(t)?t.length:t,h=Z7(e)?e:null,d=Z7(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,_=1/0,b=-1/0;for(i=0;i{\"use strict\";var oYe=Dr().isArrayOrTypedArray;lYe.exports=function(e){return sYe(e,0)};function sYe(e,t){if(!oYe(e)||t>=10)return null;for(var r=1/0,n=-1/0,i=e.length,a=0;a{\"use strict\";var NKt=ho(),kx=Ao().extendFlat;cYe.exports=function(t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p,k=t[\"_\"+r],E=t[r+\"axis\"],S=E._gridlines=[],L=E._minorgridlines=[],x=E._boundarylines=[],C=t[\"_\"+n],M=t[n+\"axis\"];E.tickmode===\"array\"&&(E.tickvals=k.slice());var g=t._xctrl,P=t._yctrl,T=g[0].length,z=g.length,O=t._a.length,V=t._b.length;NKt.prepTicks(E),E.tickmode===\"array\"&&delete E.tickvals;var G=E.smoothing?3:1;function Z(N){var j,re,oe,_e,Ee,Ce,me,ie,Se,Le,Ae,Fe,Pe=[],ge=[],Re={};if(r===\"b\")for(re=t.b2j(N),oe=Math.floor(Math.max(0,Math.min(V-2,re))),_e=re-oe,Re.length=V,Re.crossLength=O,Re.xy=function(ce){return t.evalxy([],ce,re)},Re.dxy=function(ce,Ze){return t.dxydi([],ce,oe,Ze,_e)},j=0;j0&&(Se=t.dxydi([],j-1,oe,0,_e),Pe.push(Ee[0]+Se[0]/3),ge.push(Ee[1]+Se[1]/3),Le=t.dxydi([],j-1,oe,1,_e),Pe.push(ie[0]-Le[0]/3),ge.push(ie[1]-Le[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;else for(j=t.a2i(N),Ce=Math.floor(Math.max(0,Math.min(O-2,j))),me=j-Ce,Re.length=O,Re.crossLength=V,Re.xy=function(ce){return t.evalxy([],j,ce)},Re.dxy=function(ce,Ze){return t.dxydj([],Ce,ce,me,Ze)},re=0;re0&&(Ae=t.dxydj([],Ce,re-1,me,0),Pe.push(Ee[0]+Ae[0]/3),ge.push(Ee[1]+Ae[1]/3),Fe=t.dxydj([],Ce,re-1,me,1),Pe.push(ie[0]-Fe[0]/3),ge.push(ie[1]-Fe[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;return Re.axisLetter=r,Re.axis=E,Re.crossAxis=M,Re.value=N,Re.constvar=n,Re.index=f,Re.x=Pe,Re.y=ge,Re.smoothing=M.smoothing,Re}function H(N){var j,re,oe,_e,Ee,Ce=[],me=[],ie={};if(ie.length=k.length,ie.crossLength=C.length,r===\"b\")for(oe=Math.max(0,Math.min(V-2,N)),Ee=Math.min(1,Math.max(0,N-oe)),ie.xy=function(Se){return t.evalxy([],Se,N)},ie.dxy=function(Se,Le){return t.dxydi([],Se,oe,Le,Ee)},j=0;jk.length-1)&&S.push(kx(H(a),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u;fk.length-1)&&!(v<0||v>k.length-1))for(_=k[o],b=k[v],i=0;ik[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash})));E.startline&&x.push(kx(H(0),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(H(k.length-1),{color:E.endlinecolor,width:E.endlinewidth}))}else{for(s=5e-15,l=[Math.floor((k[k.length-1]-E.tick0)/E.dtick*(1+s)),Math.ceil((k[0]-E.tick0)/E.dtick/(1+s))].sort(function(N,j){return N-j}),u=l[0],c=l[1],f=u;f<=c;f++)h=E.tick0+E.dtick*f,S.push(kx(Z(h),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u-1;fk[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash}));E.startline&&x.push(kx(Z(k[0]),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(Z(k[k.length-1]),{color:E.endlinecolor,width:E.endlinewidth}))}}});var pYe=ye((B2r,vYe)=>{\"use strict\";var hYe=ho(),dYe=Ao().extendFlat;vYe.exports=function(t,r){var n,i,a,o,s,l=r._labels=[],u=r._gridlines;for(n=0;n{\"use strict\";gYe.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 _Ye=ye((U2r,yYe)=>{\"use strict\";var UKt=Dr();yYe.exports=function(t,r,n){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(oe,_e){var Ee=0,Ce,me=0;return oe>0&&(Ce=t[_e][oe-1])!==void 0&&(me++,Ee+=Ce),oe0&&(Ce=t[_e-1][oe])!==void 0&&(me++,Ee+=Ce),_e0&&a0&&iM);return UKt.log(\"Smoother converged to\",g,\"after\",T,\"iterations\"),t}});var bYe=ye((V2r,xYe)=>{\"use strict\";xYe.exports={RELATIVE_CULL_TOLERANCE:1e-6}});var AYe=ye((G2r,TYe)=>{\"use strict\";var wYe=.5;TYe.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,wYe/2),c=Math.pow(s*s+l*l,wYe/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 MYe=ye((H2r,SYe)=>{\"use strict\";var E$=AYe(),Y7=Dr().ensureArray;function B5(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]}SYe.exports=function(t,r,n,i,a,o){var s,l,u,c,f,h,d,v,_,b,p=n[0].length,k=n.length,E=a?3*p-2:p,S=o?3*k-2:k;for(t=Y7(t,S),r=Y7(r,S),u=0;u{\"use strict\";EYe.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,_,b=Math.max(0,Math.min(Math.floor(l),a)),p=Math.max(0,Math.min(Math.floor(u),o)),k=Math.max(0,Math.min(1,l-b)),E=Math.max(0,Math.min(1,u-p));b*=3,p*=3;var S=k*k,L=S*k,x=1-k,C=x*x,M=C*x,g=E*E,P=g*E,T=1-E,z=T*T,O=z*T;for(_=0;_{\"use strict\";CYe.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,_=1-o,b=_*_,p=_*o*2,k=-3*b,E=3*(b-p),S=3*(p-v),L=3*v,x=s*s,C=x*s,M=1-s,g=M*M,P=g*M;for(d=0;d{\"use strict\";PYe.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,_=v*o,b=1-o,p=b*b,k=p*b,E=s*s,S=1-s,L=S*S,x=S*s*2,C=-3*L,M=3*(L-x),g=3*(x-E),P=3*E;for(d=0;d{\"use strict\";var RYe=bYe(),DYe=R6().findBin,VKt=MYe(),GKt=kYe(),HKt=LYe(),jKt=IYe();FYe.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*RYe.RELATIVE_CULL_TOLERANCE,_=d*RYe.RELATIVE_CULL_TOLERANCE;l-=v,u+=v,c-=_,f+=_,t.isVisible=function(b,p){return b>l&&bc&&pu||pf},t.setScale=function(){var b=t._x,p=t._y,k=VKt(t._xctrl,t._yctrl,b,p,o.smoothing,s.smoothing);t._xctrl=k[0],t._yctrl=k[1],t.evalxy=GKt([t._xctrl,t._yctrl],i,a,o.smoothing,s.smoothing),t.dxydi=HKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing),t.dxydj=jKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing)},t.i2a=function(b){var p=Math.max(0,Math.floor(b[0]),i-2),k=b[0]-p;return(1-k)*r[p]+k*r[p+1]},t.j2b=function(b){var p=Math.max(0,Math.floor(b[1]),i-2),k=b[1]-p;return(1-k)*n[p]+k*n[p+1]},t.ij2ab=function(b){return[t.i2a(b[0]),t.j2b(b[1])]},t.a2i=function(b){var p=Math.max(0,Math.min(DYe(b,r),i-2)),k=r[p],E=r[p+1];return Math.max(0,Math.min(i-1,p+(b-k)/(E-k)))},t.b2j=function(b){var p=Math.max(0,Math.min(DYe(b,n),a-2)),k=n[p],E=n[p+1];return Math.max(0,Math.min(a-1,p+(b-k)/(E-k)))},t.ab2ij=function(b){return[t.a2i(b[0]),t.b2j(b[1])]},t.i2c=function(b,p){return t.evalxy([],b,p)},t.ab2xy=function(b,p,k){if(!k&&(br[i-1]|pn[a-1]))return[!1,!1];var E=t.a2i(b),S=t.b2j(p),L=t.evalxy([],E,S);if(k){var x=0,C=0,M=[],g,P,T,z;br[i-1]?(g=i-2,P=1,x=(b-r[i-1])/(r[i-1]-r[i-2])):(g=Math.max(0,Math.min(i-2,Math.floor(E))),P=E-g),pn[a-1]?(T=a-2,z=1,C=(p-n[a-1])/(n[a-1]-n[a-2])):(T=Math.max(0,Math.min(a-2,Math.floor(S))),z=S-T),x&&(t.dxydi(M,g,T,P,z),L[0]+=M[0]*x,L[1]+=M[1]*x),C&&(t.dxydj(M,g,T,P,z),L[0]+=M[0]*C,L[1]+=M[1]*C)}return L},t.c2p=function(b,p,k){return[p.c2p(b[0]),k.c2p(b[1])]},t.p2x=function(b,p,k){return[p.p2c(b[0]),k.p2c(b[1])]},t.dadi=function(b){var p=Math.max(0,Math.min(r.length-2,b));return r[p+1]-r[p]},t.dbdj=function(b){var p=Math.max(0,Math.min(n.length-2,b));return n[p+1]-n[p]},t.dxyda=function(b,p,k,E){var S=t.dxydi(null,b,p,k,E),L=t.dadi(b,k);return[S[0]/L,S[1]/L]},t.dxydb=function(b,p,k,E){var S=t.dxydj(null,b,p,k,E),L=t.dbdj(p,E);return[S[0]/L,S[1]/L]},t.dxyda_rough=function(b,p,k){var E=h*(k||.1),S=t.ab2xy(b+E,p,!0),L=t.ab2xy(b-E,p,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dxydb_rough=function(b,p,k){var E=d*(k||.1),S=t.ab2xy(b,p+E,!0),L=t.ab2xy(b,p-E,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dpdx=function(b){return b._m},t.dpdy=function(b){return b._m}}});var HYe=ye((Y2r,GYe)=>{\"use strict\";var K7=ho(),OYe=Dr().isArray1D,WKt=aYe(),qYe=uYe(),BYe=fYe(),NYe=pYe(),XKt=mYe(),UYe=n8(),VYe=_Ye(),ZKt=r8(),YKt=zYe();GYe.exports=function(t,r){var n=K7.getFromId(t,r.xaxis),i=K7.getFromId(t,r.yaxis),a=r.aaxis,o=r.baxis,s=r.x,l=r.y,u=[];s&&OYe(s)&&u.push(\"x\"),l&&OYe(l)&&u.push(\"y\"),u.length&&ZKt(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=WKt(d,v,r.cheaterslope)}r._x=s=UYe(s),r._y=l=UYe(l),VYe(s,c,f),VYe(l,c,f),YKt(r),r.setScale();var _=qYe(s),b=qYe(l),p=.5*(_[1]-_[0]),k=.5*(_[1]+_[0]),E=.5*(b[1]-b[0]),S=.5*(b[1]+b[0]),L=1.3;return _=[k-p*L,k+p*L],b=[S-E*L,S+E*L],r._extremes[n._id]=K7.findExtremes(n,_,{padded:!0}),r._extremes[i._id]=K7.findExtremes(i,b,{padded:!0}),BYe(r,\"a\",\"b\"),BYe(r,\"b\",\"a\"),NYe(r,a),NYe(r,o),h.clipsegments=XKt(r._xctrl,r._yctrl,a,o),h.x=s,h.y=l,h.a=c,h.b=f,[h]}});var WYe=ye((K2r,jYe)=>{\"use strict\";jYe.exports={attributes:G7(),supplyDefaults:jZe(),plot:iYe(),calc:HYe(),animatable:!0,isContainer:!0,moduleType:\"trace\",name:\"carpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"carpetAxis\",\"notLegendIsolatable\",\"noMultiCategory\",\"noHover\",\"noSortingByValue\"],meta:{}}});var ZYe=ye((J2r,XYe)=>{\"use strict\";XYe.exports=WYe()});var k$=ye(($2r,JYe)=>{\"use strict\";var KKt=kg(),u0=pf(),JKt=Gl(),{hovertemplateAttrs:$Kt,texttemplateAttrs:QKt,templatefallbackAttrs:YYe}=Ll(),KYe=Tu(),Cx=Ao().extendFlat,sg=u0.marker,N5=u0.line,eJt=sg.line;JYe.exports={carpet:{valType:\"string\",editType:\"calc\"},a:{valType:\"data_array\",editType:\"calc\"},b:{valType:\"data_array\",editType:\"calc\"},mode:Cx({},u0.mode,{dflt:\"markers\"}),text:Cx({},u0.text,{}),texttemplate:QKt({editType:\"plot\"},{keys:[\"a\",\"b\",\"text\"]}),texttemplatefallback:YYe({editType:\"plot\"}),hovertext:Cx({},u0.hovertext,{}),line:{color:N5.color,width:N5.width,dash:N5.dash,backoff:N5.backoff,shape:Cx({},N5.shape,{values:[\"linear\",\"spline\"]}),smoothing:N5.smoothing,editType:\"calc\"},connectgaps:u0.connectgaps,fill:Cx({},u0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:KKt(),marker:Cx({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:Cx({width:eJt.width,editType:\"calc\"},KYe(\"marker.line\")),gradient:sg.gradient,editType:\"calc\"},KYe(\"marker\")),textfont:u0.textfont,textposition:u0.textposition,selected:u0.selected,unselected:u0.unselected,hoverinfo:Cx({},JKt.hoverinfo,{flags:[\"a\",\"b\",\"text\",\"name\"]}),hoveron:u0.hoveron,hovertemplate:$Kt(),hovertemplatefallback:YYe(),zorder:u0.zorder}});var tKe=ye((Q2r,eKe)=>{\"use strict\";var $Ye=Dr(),tJt=Sm(),U5=Ru(),rJt=$p(),iJt=R0(),QYe=eT(),nJt=D0(),aJt=Ig(),oJt=k$();eKe.exports=function(t,r,n,i){function a(h,d){return $Ye.coerce(t,r,oJt,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(\"texttemplatefallback\"),a(\"hovertext\");var u=l{\"use strict\";rKe.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((twr,nKe)=>{\"use strict\";nKe.exports=function(e,t){for(var r=e._fullData.length,n,i=0;i{\"use strict\";var aKe=Eo(),sJt=F0(),lJt=km(),uJt=z0(),cJt=O0().calcMarkerSize,fJt=J7();oKe.exports=function(t,r){var n=r._carpetTrace=fJt(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 hJt=oT(),lKe=ho(),dJt=So();uKe.exports=function(t,r,n,i){var a,o,s,l=n[0][0].carpet,u=lKe.getFromId(t,l.xaxis||\"x\"),c=lKe.getFromId(t,l.yaxis||\"y\"),f={xaxis:u,yaxis:c,plot:r.plot};for(a=0;a{\"use strict\";var vJt=cT(),pJt=Dr().fillText;fKe.exports=function(t,r,n,i){var a=vJt(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 _=[];function b(E,S){var L;E.labelprefix&&E.labelprefix.length>0?L=E.labelprefix.replace(/ = $/,\"\"):L=E._hovertitle,_.push(L+\": \"+S.toFixed(3)+E.labelsuffix)}if(!h.hovertemplate){var p=f.hi||h.hoverinfo,k=p.split(\"+\");k.indexOf(\"all\")!==-1&&(k=[\"a\",\"b\",\"text\"]),k.indexOf(\"a\")!==-1&&b(d.aaxis,f.a),k.indexOf(\"b\")!==-1&&b(d.baxis,f.b),_.push(\"y: \"+o.yLabel),k.indexOf(\"text\")!==-1&&pJt(f,h,_),o.extraText=_.join(\"
\")}return a}});var vKe=ye((awr,dKe)=>{\"use strict\";dKe.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 gKe=ye((owr,pKe)=>{\"use strict\";pKe.exports={attributes:k$(),supplyDefaults:tKe(),colorbar:$d(),formatLabels:iKe(),calc:sKe(),plot:cKe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:hKe(),selectPoints:fT(),eventData:vKe(),moduleType:\"trace\",name:\"scattercarpet\",basePlotModule:ph(),categories:[\"svg\",\"carpet\",\"symbols\",\"showLegend\",\"carpetDependent\",\"zoomScale\"],meta:{}}});var yKe=ye((swr,mKe)=>{\"use strict\";mKe.exports=gKe()});var C$=ye((lwr,_Ke)=>{\"use strict\";var lg=LT(),g1=k4(),gJt=Tu(),mJt=Ao().extendFlat,ry=g1.contours;_Ke.exports=mJt({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:ry.type,start:ry.start,end:ry.end,size:ry.size,coloring:{valType:\"enumerated\",values:[\"fill\",\"lines\",\"none\"],dflt:\"fill\",editType:\"calc\"},showlines:ry.showlines,showlabels:ry.showlabels,labelfont:ry.labelfont,labelformat:ry.labelformat,operation:ry.operation,value:ry.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},gJt(\"\",{cLetter:\"z\",autoColorDflt:!1}))});var L$=ye((uwr,wKe)=>{\"use strict\";var xKe=Dr(),yJt=QI(),bKe=C$(),_Jt=MG(),xJt=T8(),bJt=A8();wKe.exports=function(t,r,n,i){function a(u,c){return xKe.coerce(t,r,bKe,u,c)}function o(u){return xKe.coerce2(t,r,bKe,u)}if(a(\"carpet\"),t.a&&t.b){var s=yJt(t,r,a,i,\"a\",\"b\");if(!s){r.visible=!1;return}a(\"text\");var l=a(\"contours.type\")===\"constraint\";l?_Jt(t,r,a,i,n,{hasHover:!1}):(xJt(t,r,a,o),bJt(t,r,a,i,{hasHover:!1}))}else r._defaultColor=n,r._length=null;a(\"zorder\")}});var MKe=ye((cwr,SKe)=>{\"use strict\";var wJt=gv(),TKe=Dr(),TJt=r8(),AJt=n8(),SJt=a8(),MJt=o8(),AKe=YV(),EJt=L$(),kJt=J7(),CJt=vG();SKe.exports=function(t,r){var n=r._carpetTrace=kJt(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),EJt(a,r,r._defaultColor,t._fullLayout)}var o=LJt(t,r);return CJt(r,r._z),o}};function LJt(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,TKe.isArray1D(t.z)&&TJt(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=AJt(t._z||t.z,t.transpose),t._emptypoints=MJt(f),SJt(f,t._emptypoints);var h=TKe.maxRowLength(f),d=t.xtype===\"scaled\"?\"\":a,v=AKe(t,d,o,s,h,n),_=t.ytype===\"scaled\"?\"\":l,b=AKe(t,_,u,c,f.length,i),p={a:v,b,z:f};return t.contours.type===\"levels\"&&t.contours.coloring!==\"none\"&&wJt(e,t,{vals:f,containerStr:\"\",cLetter:\"z\"}),[p]}});var kKe=ye((fwr,EKe)=>{\"use strict\";var PJt=Dr().isArrayOrTypedArray;EKe.exports=function(e,t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p=PJt(r)?\"a\":\"b\",k=p===\"a\"?e.aaxis:e.baxis,E=k.smoothing,S=p===\"a\"?e.a2i:e.b2j,L=p===\"a\"?r:n,x=p===\"a\"?n:r,C=p===\"a\"?t.a.length:t.b.length,M=p===\"a\"?t.b.length:t.a.length,g=Math.floor(p===\"a\"?e.b2j(x):e.a2i(x)),P=p===\"a\"?function(_e){return e.evalxy([],_e,g)}:function(_e){return e.evalxy([],g,_e)};E&&(o=Math.max(0,Math.min(M-2,g)),s=g-o,a=p===\"a\"?function(_e,Ee){return e.dxydi([],_e,o,Ee,s)}:function(_e,Ee){return e.dxydj([],o,_e,s,Ee)});var T=S(L[0]),z=S(L[1]),O=T0?Math.floor:Math.ceil,Z=O>0?Math.ceil:Math.floor,H=O>0?Math.min:Math.max,N=O>0?Math.max:Math.min,j=G(T+V),re=Z(z-V);c=P(T);var oe=[[c]];for(i=j;i*O{\"use strict\";var Q7=Oa(),e9=A$(),RKe=S$(),sC=So(),m1=Dr(),IJt=gG(),RJt=mG(),dw=E8(),$7=L4(),DJt=bG(),FJt=xG(),zJt=wG(),OJt=J7(),CKe=kKe();DKe.exports=function(t,r,n,i){var a=r.xaxis,o=r.yaxis;m1.makeTraceGroups(i,n,\"contour\").each(function(s){var l=Q7.select(this),u=s[0],c=u.trace,f=c._carpetTrace=OJt(t,c),h=t.calcdata[f.index][0];if(!f.visible||f.visible===\"legendonly\")return;var d=u.a,v=u.b,_=c.contours,b=FJt(_,r,u),p=_.type===\"constraint\",k=_._operation,E=p?k===\"=\"?\"lines\":\"fill\":_.coloring;function S(G){var Z=f.ab2xy(G[0],G[1],!0);return[a.c2p(Z[0]),o.c2p(Z[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]]];IJt(b);var x=(d[d.length-1]-d[0])*1e-8,C=(v[v.length-1]-v[0])*1e-8;RJt(b,x,C);var M=b;_.type===\"constraint\"&&(M=DJt(b,k)),qJt(b,S);var g,P,T,z,O=[];for(z=h.clipsegments.length-1;z>=0;z--)g=h.clipsegments[z],P=e9([],g.x,a.c2p),T=e9([],g.y,o.c2p),P.reverse(),T.reverse(),O.push(RKe(P,T,g.bicubic));var V=\"M\"+O.join(\"L\")+\"Z\";UJt(l,h.clipsegments,a,o,p,E),VJt(c,l,a,o,M,L,S,f,h,E,V),BJt(l,b,t,u,_,r,f),sC.setClipUrl(l,f._clipPathId,t)})};function qJt(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 LKe(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 PKe(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]);return[e[0]/t,e[1]/t]}function IKe(e,t){var r=Math.abs(e[0]*t[0]+e[1]*t[1]),n=Math.sqrt(1-r*r);return n/r}function UJt(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,_=b):Math.abs(h[1]-d[1])=0&&(d=P,_=b):m1.log(\"endpt to newendpt is not vert. or horz.\",h,d,P)}if(_>=0)break;u+=M(h,d),h=d}if(_===t.edgepaths.length){m1.log(\"unclosed perimeter path\");break}l=_,f=c.indexOf(l)===-1,f&&(l=c[0],u+=M(h,d)+\"Z\",h=null)}for(l=0;l{\"use strict\";zKe.exports={attributes:C$(),supplyDefaults:L$(),colorbar:L8(),calc:MKe(),plot:FKe(),style:C8(),moduleType:\"trace\",name:\"contourcarpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"contour\",\"symbols\",\"showLegend\",\"hasLines\",\"carpetDependent\",\"noHover\",\"noSortingByValue\"],meta:{}}});var BKe=ye((vwr,qKe)=>{\"use strict\";qKe.exports=OKe()});var r9=ye((pwr,HKe)=>{\"use strict\";var t9=Dr().extendFlat,lC=pf(),NKe=df().axisHoverFormat,{hovertemplateAttrs:HJt,templatefallbackAttrs:jJt}=Ll(),VKe=Pd().dash,WJt=n3(),GKe=WT(),XJt=GKe.INCREASING.COLOR,ZJt=GKe.DECREASING.COLOR,P$=lC.line;function UKe(e){return{line:{color:t9({},P$.color,{dflt:e}),width:P$.width,dash:VKe,editType:\"style\"},editType:\"style\"}}HKe.exports={xperiod:lC.xperiod,xperiod0:lC.xperiod0,xperiodalignment:lC.xperiodalignment,xhoverformat:NKe(\"x\"),yhoverformat:NKe(\"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:t9({},P$.width,{}),dash:t9({},VKe,{}),editType:\"style\"},increasing:UKe(XJt),decreasing:UKe(ZJt),text:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertext:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertemplate:HJt({},{keys:[\"open\",\"high\",\"low\",\"close\"]}),hovertemplatefallback:jJt(),tickwidth:{valType:\"number\",min:0,max:.5,dflt:.3,editType:\"calc\"},hoverlabel:t9({},WJt.hoverlabel,{split:{valType:\"boolean\",dflt:!1,editType:\"style\"}}),zorder:lC.zorder}});var I$=ye((gwr,jKe)=>{\"use strict\";var YJt=qa(),KJt=Dr();jKe.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=YJt.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,KJt.minRowLength(a))),r._length=f,f}}});var ZKe=ye((mwr,XKe)=>{\"use strict\";var JJt=Dr(),$Jt=I$(),QJt=Pg(),e$t=r9();XKe.exports=function(t,r,n,i){function a(s,l){return JJt.coerce(t,r,e$t,s,l)}var o=$Jt(t,r,a,i);if(!o){r.visible=!1;return}QJt(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),a(\"line.dash\"),WKe(t,r,a,\"increasing\"),WKe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"tickwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function WKe(e,t,r,n){r(n+\".line.color\"),r(n+\".line.width\",t.line.width),r(n+\".line.dash\",t.line.dash)}});var R$=ye((ywr,KKe)=>{\"use strict\";var V5=Dr(),i9=V5._,n9=ho(),t$t=Rg(),uC=fs().BADNUM;function r$t(e,t){var r=n9.getFromId(e,t.xaxis),n=n9.getFromId(e,t.yaxis),i=n$t(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=YKe(e,t,o,s,n,i$t);return t._extremes[r._id]=n9.findExtremes(r,s,{vpad:a/2}),l.length?(V5.extendFlat(l[0].t,{wHover:a/2,tickLen:i}),l):[{t:{empty:!0}}]}function i$t(e,t,r,n){return{o:e,h:t,l:r,c:n}}function YKe(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=V5.isArrayOrTypedArray(t.text),f=V5.isArrayOrTypedArray(t.hovertext),h=!0,d=null,v=!!t.xperiodalignment,_=[],b=0;bd):h=L>k,d=L;var x=a(k,E,S,L);x.pos=p,x.yc=(k+L)/2,x.i=b,x.dir=h?\"increasing\":\"decreasing\",x.x=x.pos,x.y=[S,E],v&&(x.orig_p=r[b]),c&&(x.tx=t.text[b]),f&&(x.htx=t.hovertext[b]),_.push(x)}else _.push({pos:p,empty:!0})}return t._extremes[i._id]=n9.findExtremes(i,V5.concat(l,s),{padded:!0}),_.length&&(_[0].t={labels:{open:i9(e,\"open:\")+\" \",high:i9(e,\"high:\")+\" \",low:i9(e,\"low:\")+\" \",close:i9(e,\"close:\")+\" \"}}),_}function n$t(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 a$t=Oa(),JKe=Dr();$Ke.exports=function(t,r,n,i){var a=r.yaxis,o=r.xaxis,s=!!o.rangebreaks;JKe.makeTraceGroups(i,n,\"trace ohlc\").each(function(l){var u=a$t.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(JKe.identity);v.enter().append(\"path\"),v.exit().remove(),v.attr(\"d\",function(_){if(_.empty)return\"M0,0Z\";var b=o.c2p(_.pos-d,!0),p=o.c2p(_.pos+d,!0),k=s?(b+p)/2:o.c2p(_.pos,!0),E=a.c2p(_.o,!0),S=a.c2p(_.h,!0),L=a.c2p(_.l,!0),x=a.c2p(_.c,!0);return\"M\"+b+\",\"+E+\"H\"+k+\"M\"+k+\",\"+S+\"V\"+L+\"M\"+p+\",\"+x+\"H\"+k})})}});var tJe=ye((xwr,eJe)=>{\"use strict\";var D$=Oa(),o$t=So(),s$t=ka();eJe.exports=function(t,r,n){var i=n||D$.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;D$.select(this).selectAll(\"path\").each(function(s){if(!s.empty){var l=o[s.dir].line;D$.select(this).style(\"fill\",\"none\").call(s$t.stroke,l.color).call(o$t.dashLine,l.dash,l.width).style(\"opacity\",o.selectedpoints&&!s.selected?.3:1)}})})}});var z$=ye((bwr,oJe)=>{\"use strict\";var F$=ho(),l$t=Dr(),a9=vf(),u$t=ka(),c$t=Dr().fillText,rJe=WT(),f$t={increasing:rJe.INCREASING.SYMBOL,decreasing:rJe.DECREASING.SYMBOL};function h$t(e,t,r,n){var i=e.cd,a=i[0].trace;return a.hoverlabel.split?nJe(e,t,r,n):aJe(e,t,r,n)}function iJe(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},_=s.bdPos||s.tickLen,b=s.wHover,p=Math.min(1,_/Math.abs(a.r2c(a.range[1])-a.r2c(a.range[0])));f=e.maxHoverDistance-p,h=e.maxSpikeDistance-p;function k(P){var T=v(P);return a9.inbox(T-b,T+b,f)}function E(P){var T=P[u],z=P[c];return T===z||a9.inbox(T-r,z-r,f)}function S(P){return(k(P)+E(P))/2}var L=a9.getDistanceFunction(n,k,E,S);if(a9.getClosest(i,L,e),e.index===!1)return null;var x=i[e.index];if(x.empty)return null;var C=x.dir,M=o[C],g=M.line.color;return u$t.opacity(g)&&M.line.width?e.color=g:e.color=M.fillcolor,e.x0=a.c2p(x.pos+d-_,!0),e.x1=a.c2p(x.pos+d+_,!0),e.xLabelVal=x.orig_p!==void 0?x.orig_p:x.pos,e.spikeDistance=S(x)*h/f,e.xSpike=a.c2p(x.pos,!0),e}function nJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=[],u=iJe(e,t,r,n);if(!u)return[];var c=i[u.index],f=c.hi||o.hoverinfo||\"\";if(f===\"none\"||f===\"skip\")return[];for(var h=[\"high\",\"open\",\"close\",\"low\"],d={},v=0;v\"+s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat)):(k=l$t.extendFlat({},u),k.y0=k.y1=p,k.yLabelVal=b,k.yLabel=s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat),k.name=\"\",l.push(k),d[b]=k)}return l}function aJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=iJe(e,t,r,n);if(!l)return[];var u=l.index,c=i[u],f=l.index=c.i,h=c.dir;function d(S){return s.labels[S]+F$.hoverLabelText(a,o[S][f],o.yhoverformat)}var v=c.hi||o.hoverinfo||\"\",_=v.split(\"+\"),b=v===\"all\",p=b||_.indexOf(\"y\")!==-1,k=b||_.indexOf(\"text\")!==-1,E=p?[d(\"open\"),d(\"high\"),d(\"low\"),d(\"close\")+\" \"+f$t[h]]:[];return k&&c$t(c,o,E),l.extraText=E.join(\"
\"),l.y0=l.y1=a.c2p(c.yc,!0),[l]}oJe.exports={hoverPoints:h$t,hoverSplit:nJe,hoverOnPoints:aJe}});var O$=ye((wwr,sJe)=>{\"use strict\";sJe.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\";lJe.exports={moduleType:\"trace\",name:\"ohlc\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\"],meta:{},attributes:r9(),supplyDefaults:ZKe(),calc:R$().calc,plot:QKe(),style:tJe(),hoverPoints:z$().hoverPoints,selectPoints:O$()}});var fJe=ye((Awr,cJe)=>{\"use strict\";cJe.exports=uJe()});var B$=ye((Swr,vJe)=>{\"use strict\";var q$=Dr().extendFlat,hJe=df().axisHoverFormat,dp=r9(),G5=_4();function dJe(e){return{line:{color:q$({},G5.line.color,{dflt:e}),width:G5.line.width,editType:\"style\"},fillcolor:G5.fillcolor,editType:\"style\"}}vJe.exports={xperiod:dp.xperiod,xperiod0:dp.xperiod0,xperiodalignment:dp.xperiodalignment,xhoverformat:hJe(\"x\"),yhoverformat:hJe(\"y\"),x:dp.x,open:dp.open,high:dp.high,low:dp.low,close:dp.close,line:{width:q$({},G5.line.width,{}),editType:\"style\"},increasing:dJe(dp.increasing.line.color.dflt),decreasing:dJe(dp.decreasing.line.color.dflt),text:dp.text,hovertext:dp.hovertext,hovertemplate:dp.hovertemplate,hovertemplatefallback:dp.hovertemplatefallback,whiskerwidth:q$({},G5.whiskerwidth,{dflt:0}),hoverlabel:dp.hoverlabel,zorder:G5.zorder}});var mJe=ye((Mwr,gJe)=>{\"use strict\";var d$t=Dr(),v$t=ka(),p$t=I$(),g$t=Pg(),m$t=B$();gJe.exports=function(t,r,n,i){function a(s,l){return d$t.coerce(t,r,m$t,s,l)}var o=p$t(t,r,a,i);if(!o){r.visible=!1;return}g$t(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),pJe(t,r,a,\"increasing\"),pJe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"whiskerwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function pJe(e,t,r,n){var i=r(n+\".line.color\");r(n+\".line.width\",t.line.width),r(n+\".fillcolor\",v$t.addOpacity(i,.5))}});var bJe=ye((Ewr,xJe)=>{\"use strict\";var yJe=Dr(),_Je=ho(),y$t=Rg(),_$t=R$().calcCommon;xJe.exports=function(e,t){var r=e._fullLayout,n=_Je.getFromId(e,t.xaxis),i=_Je.getFromId(e,t.yaxis),a=n.makeCalcdata(t,\"x\"),o=y$t(t,n,\"x\",a).vals,s=_$t(e,t,a,o,i,x$t);return s.length?(yJe.extendFlat(s[0].t,{num:r._numBoxes,dPos:yJe.distinctVals(o).minDiff/2,posLetter:\"x\",valLetter:\"y\"}),r._numBoxes++,s):[{t:{empty:!0}}]};function x$t(e,t,r,n){return{min:r,q1:Math.min(e,n),med:n,q3:Math.max(e,n),max:t}}});var TJe=ye((kwr,wJe)=>{\"use strict\";wJe.exports={moduleType:\"trace\",name:\"candlestick\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\",\"candlestick\",\"boxLayout\"],meta:{},attributes:B$(),layoutAttributes:x4(),supplyLayoutDefaults:XI().supplyLayoutDefaults,crossTraceCalc:YI().crossTraceCalc,supplyDefaults:mJe(),calc:bJe(),plot:KI().plot,layerName:\"boxlayer\",style:JI().style,hoverPoints:z$().hoverPoints,selectPoints:O$()}});var SJe=ye((Cwr,AJe)=>{\"use strict\";AJe.exports=TJe()});var U$=ye((Lwr,MJe)=>{\"use strict\";var s9=Dr(),b$t=ym(),o9=s9.deg2rad,N$=s9.rad2deg;MJe.exports=function(t,r,n){switch(b$t(t,n),t._id){case\"x\":case\"radialaxis\":w$t(t,r);break;case\"angularaxis\":S$t(t,r);break}};function w$t(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 T$t(e,t){return t===\"degrees\"?o9(e):e}function A$t(e,t){return t===\"degrees\"?N$(e):e}function S$t(e,t){var r=e.type;if(r===\"linear\"){var n=e.d2c,i=e.c2d;e.d2c=function(a,o){return T$t(n(a),o)},e.c2d=function(a,o){return i(A$t(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\";EJe.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 c9=ye((Iwr,IJe)=>{\"use strict\";var vw=Dr(),kJe=EM().tester,V$=vw.findIndexOfMin,LJe=vw.isAngleInsideSector,M$t=vw.angleDelta,CJe=vw.angleDist;function E$t(e,t,r,n,i){if(!LJe(t,n))return!1;var a,o;r[0]0?o:1/0},n=V$(t,r),i=vw.mod(n+1,t.length);return[t[n],t[i]]}function u9(e){return Math.abs(e)>1e-10?e:0}function G$(e,t,r){t=t||0,r=r||0;for(var n=e.length,i=new Array(n),a=0;a{\"use strict\";function RJe(e){return e<0?-1:e>0?1:0}function j5(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 W5(e,t){var r=t[0],n=t[1];return[r*e.radius+e.cx,-n*e.radius+e.cy]}function DJe(e,t){return t*e.radius}function F$t(e,t,r,n){var i=W5(e,j5([r,t])),a=i[0],o=i[1],s=W5(e,j5([n,t])),l=s[0],u=s[1];if(t===0)return[\"M\"+a+\",\"+o,\"L\"+l+\",\"+u].join(\" \");var c=DJe(e,1/Math.abs(t));return[\"M\"+a+\",\"+o,\"A\"+c+\",\"+c+\" 0 0,\"+(t<0?1:0)+\" \"+l+\",\"+u].join(\" \")}function z$t(e,t,r,n){var i=DJe(e,1/(t+1)),a=W5(e,j5([t,r])),o=a[0],s=a[1],l=W5(e,j5([t,n])),u=l[0],c=l[1];if(RJe(r)!==RJe(n)){var f=W5(e,j5([t,0])),h=f[0],d=f[1];return[\"M\"+o+\",\"+s,\"A\"+i+\",\"+i+\" 0 0,\"+(0{\"use strict\";var pw=Oa(),O$t=cd(),mw=qa(),Xc=Dr(),iy=Xc.strRotate,xd=Xc.strTranslate,j$=ka(),cC=So(),q$t=Mc(),vp=ho(),B$t=ym(),N$t=U$(),U$t=Tg().doAutoRange,y1=NN(),d9=yv(),zJe=vf(),V$t=Eb(),G$t=Of().prepSelect,H$t=Of().selectOnClick,W$=Of().clearOutline,OJe=Ag(),qJe=dM(),BJe=bM().redrawReglTraces,j$t=$h().MID_SHIFT,Lx=l9(),_1=c9(),v9=H$(),f9=v9.smith,W$t=v9.reactanceArc,X$t=v9.resistanceArc,h9=v9.smithTransform,Z$t=Xc._,NJe=Xc.mod,Px=Xc.deg2rad,gw=Xc.rad2deg;function UJe(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 Nd=UJe.prototype;HJe.exports=function(t,r,n){return new UJe(t,r,n)};Nd.plot=function(e,t){for(var r=this,n=t[r.id],i=!1,a=0;ab?(p=u,k=u*b,L=(c-k)/i.h/2,E=[s[0],s[1]],S=[l[0]+L,l[1]-L]):(p=c/b,k=c,L=(u-p)/i.w/2,E=[s[0]+L,s[1]-L],S=[l[0],l[1]]),r.xLength2=p,r.yLength2=k,r.xDomain2=E,r.yDomain2=S;var x=r.xOffset2=i.l+i.w*E[0],C=r.yOffset2=i.t+i.h*(1-S[1]),M=r.radius=p/d,g=r.innerRadius=r.getHole(t)*M,P=r.cx=x-M*h[0],T=r.cy=C+M*h[3],z=r.cxx=P-x,O=r.cyy=T-C,V=a.side,G;V===\"counterclockwise\"?(G=V,V=\"top\"):V===\"clockwise\"&&(G=V,V=\"bottom\"),r.radialAxis=r.mockAxis(e,t,a,{_id:\"x\",side:V,_trueSide:G,domain:[g/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:E}),r.yaxis=r.mockCartesianAxis(e,t,{_id:\"y\",domain:S});var Z=r.pathSubplot();r.clipPaths.forTraces.select(\"path\").attr(\"d\",Z).attr(\"transform\",xd(z,O)),n.frontplot.attr(\"transform\",xd(x,C)).call(cC.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr(\"d\",Z).attr(\"transform\",xd(P,T)).call(j$.fill,t.bgcolor)};Nd.mockAxis=function(e,t,r,n){var i=Xc.extendFlat({},r,n);return N$t(i,t,e),i};Nd.mockCartesianAxis=function(e,t,r){var n=this,i=n.isSmith,a=r._id,o=Xc.extendFlat({type:\"linear\"},r);B$t(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};Nd.doAutoRange=function(e,t){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(t);U$t(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 g=h9(r,f9([M.x,0]));return xd(g[0]-s,g[1]-l)}:function(M){return xd(f.l2p(M.x)+o,0)},_=d?function(M){return X$t(r,M.x,-1/0,1/0)}:function(M){return r.pathArc(f.r2p(M.x)+o)},b=VJe(u);if(r.radialTickLayout!==b&&(i[\"radial-axis\"].selectAll(\".xtick\").remove(),r.radialTickLayout=b),h){f.setScale();var p=0,k=d?(f.tickvals||[]).filter(function(M){return M>=0}).map(function(M){return vp.tickText(f,M,!0,!1)}):vp.calcTicks(f),E=d?k:vp.clipEnds(f,k),S=vp.getTickSigns(f)[2];d&&((f.ticks===\"top\"&&f.side===\"bottom\"||f.ticks===\"bottom\"&&f.side===\"top\")&&(S=-S),f.ticks===\"top\"&&f.side===\"top\"&&(p=-f.ticklen),f.ticks===\"bottom\"&&f.side===\"bottom\"&&(p=f.ticklen)),vp.drawTicks(n,f,{vals:k,layer:i[\"radial-axis\"],path:vp.makeTickPath(f,0,S),transFn:v,crisp:!1}),vp.drawGrid(n,f,{vals:E,layer:i[\"radial-grid\"],path:_,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,f,{vals:k,layer:i[\"radial-axis\"],transFn:v,labelFns:vp.makeLabelFns(f,p)})}var L=r.radialAxisAngle=r.vangles?gw(GJe(Px(u.angle),r.vangles)):u.angle,x=xd(s,l),C=x+iy(-L);fC(i[\"radial-axis\"],h&&(u.showticklabels||u.ticks),{transform:C}),fC(i[\"radial-grid\"],h&&u.showgrid,{transform:d?\"\":x}),fC(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(j$.stroke,u.linecolor)};Nd.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=cC.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,_=Px(v),b=Math.cos(_),p=Math.sin(_),k=o+a/2*b+c*p,E=s-a/2*p+c*b;n.layers[\"radial-axis-title\"]=V$t.draw(i,u,{propContainer:l,propName:n.id+\".radialaxis.title.text\",placeholder:Z$t(i,\"Click to enter radial axis title\"),attributes:{x:k,y:E,\"text-anchor\":\"middle\"},transform:{rotate:-v}})}};Nd.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(g){var P=h9(r,f9([0,g.x]));return Math.atan2(P[0]-s,P[1]-l)-Math.PI/2}:function(g){return c.t2g(g.x)};c.type===\"linear\"&&c.thetaunit===\"radians\"&&(c.tick0=gw(c.tick0),c.dtick=gw(c.dtick));var d=function(g){return xd(s+a*Math.cos(g),l-a*Math.sin(g))},v=f?function(g){var P=h9(r,f9([0,g.x]));return xd(P[0],P[1])}:function(g){return d(h(g))},_=f?function(g){var P=h9(r,f9([0,g.x])),T=Math.atan2(P[0]-s,P[1]-l)-Math.PI/2;return xd(P[0],P[1])+iy(-gw(T))}:function(g){var P=h(g);return d(P)+iy(-gw(P))},b=f?function(g){return W$t(r,g.x,0,1/0)}:function(g){var P=h(g),T=Math.cos(P),z=Math.sin(P);return\"M\"+[s+o*T,l-o*z]+\"L\"+[s+a*T,l-a*z]},p=vp.makeLabelFns(c,0),k=p.labelStandoff,E={};E.xFn=function(g){var P=h(g);return Math.cos(P)*k},E.yFn=function(g){var P=h(g),T=Math.sin(P)>0?.2:1;return-Math.sin(P)*(k+g.fontSize*T)+Math.abs(Math.cos(P))*(g.fontSize*j$t)},E.anchorFn=function(g){var P=h(g),T=Math.cos(P);return Math.abs(T)<.1?\"middle\":T>0?\"start\":\"end\"},E.heightFn=function(g,P,T){var z=h(g);return-.5*(1+Math.sin(z))*T};var S=VJe(u);r.angularTickLayout!==S&&(i[\"angular-axis\"].selectAll(\".\"+c._id+\"tick\").remove(),r.angularTickLayout=S);var L=f?[1/0].concat(c.tickvals||[]).map(function(g){return vp.tickText(c,g,!0,!1)}):vp.calcTicks(c);f&&(L[0].text=\"\\u221E\",L[0].fontSize*=1.75);var x;if(t.gridshape===\"linear\"?(x=L.map(h),Xc.angleDelta(x[0],x[1])<0&&(x=x.slice().reverse())):x=null,r.vangles=x,c.type===\"category\"&&(L=L.filter(function(g){return Xc.isAngleInsideSector(h(g),r.sectorInRad)})),c.visible){var C=c.ticks===\"inside\"?-1:1,M=(c.linewidth||1)/2;vp.drawTicks(n,c,{vals:L,layer:i[\"angular-axis\"],path:\"M\"+C*M+\",0h\"+C*c.ticklen,transFn:_,crisp:!1}),vp.drawGrid(n,c,{vals:L,layer:i[\"angular-grid\"],path:b,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,c,{vals:L,layer:i[\"angular-axis\"],repositionOnUpdate:!0,transFn:v,labelFns:E})}fC(i[\"angular-line\"].select(\"path\"),u.showline,{d:r.pathSubplot(),transform:xd(s,l)}).attr(\"stroke-width\",u.linewidth).call(j$.stroke,u.linecolor)};Nd.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)}};Nd.updateHoverAndMainDrag=function(e){var t=this,r=t.isSmith,n=t.gd,i=t.layers,a=e._zoomlayer,o=Lx.MINZOOM,s=Lx.OFFEDGE,l=t.radius,u=t.innerRadius,c=t.cx,f=t.cy,h=t.cxx,d=t.cyy,v=t.sectorInRad,_=t.vangles,b=t.radialAxis,p=_1.clampTiny,k=_1.findXYatLength,E=_1.findEnclosingVertexAngles,S=Lx.cornerHalfWidth,L=Lx.cornerLen/2,x,C,M=y1.makeDragger(i,\"path\",\"maindrag\",e.dragmode===!1?\"none\":\"crosshair\");pw.select(M).attr(\"d\",t.pathSubplot()).attr(\"transform\",xd(c,f)),M.onmousemove=function(ce){zJe.hover(n,ce,t.id),n._fullLayout._lasthover=M,n._fullLayout._hoversubplot=t.id},M.onmouseout=function(ce){n._dragging||d9.unhover(n,ce)};var g={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,z,O,V,G,Z,H,N;function j(ce,Ze){return Math.sqrt(ce*ce+Ze*Ze)}function re(ce,Ze){return j(ce-h,Ze-d)}function oe(ce,Ze){return Math.atan2(d-Ze,ce-h)}function _e(ce,Ze){return[ce*Math.cos(Ze),ce*Math.sin(-Ze)]}function Ee(ce,Ze){if(ce===0)return t.pathSector(2*S);var ut=L/ce,pt=Ze-ut,Zt=Ze+ut,st=Math.max(0,Math.min(ce,l)),lt=st-S,Gt=st+S;return\"M\"+_e(lt,pt)+\"A\"+[lt,lt]+\" 0,0,0 \"+_e(lt,Zt)+\"L\"+_e(Gt,Zt)+\"A\"+[Gt,Gt]+\" 0,0,1 \"+_e(Gt,pt)+\"Z\"}function Ce(ce,Ze,ut){if(ce===0)return t.pathSector(2*S);var pt=_e(ce,Ze),Zt=_e(ce,ut),st=p((pt[0]+Zt[0])/2),lt=p((pt[1]+Zt[1])/2),Gt,Nt;if(st&<){var Jt=lt/st,sr=-1/Jt,wr=k(S,Jt,st,lt);Gt=k(L,sr,wr[0][0],wr[0][1]),Nt=k(L,sr,wr[1][0],wr[1][1])}else{var cr,$e;lt?(cr=L,$e=S):(cr=S,$e=L),Gt=[[st-cr,lt-$e],[st+cr,lt-$e]],Nt=[[st-cr,lt+$e],[st+cr,lt+$e]]}return\"M\"+Gt.join(\"L\")+\"L\"+Nt.reverse().join(\"L\")+\"Z\"}function me(){z=null,O=null,V=t.pathSubplot(),G=!1;var ce=n._fullLayout[t.id];Z=O$t(ce.bgcolor).getLuminance(),H=y1.makeZoombox(a,Z,c,f,V),H.attr(\"fill-rule\",\"evenodd\"),N=y1.makeCorners(a,c,f),W$(n)}function ie(ce,Ze){return Ze=Math.max(Math.min(Ze,l),u),ceo?(ce-1&&ce===1&&H$t(Ze,n,[t.xaxis],[t.yaxis],t.id,g),ut.indexOf(\"event\")>-1&&zJe.click(n,Ze,t.id)}g.prepFn=function(ce,Ze,ut){var pt=n._fullLayout.dragmode,Zt=M.getBoundingClientRect();n._fullLayout._calcInverseTransform(n);var st=n._fullLayout._invTransform;x=n._fullLayout._invScaleX,C=n._fullLayout._invScaleY;var lt=Xc.apply3DTransform(st)(Ze-Zt.left,ut-Zt.top);if(P=lt[0],T=lt[1],_){var Gt=_1.findPolygonOffset(l,v[0],v[1],_);P+=h+Gt[0],T+=d+Gt[1]}switch(pt){case\"zoom\":g.clickFn=Re,r||(_?g.moveFn=Fe:g.moveFn=Le,g.doneFn=Pe,me(ce,Ze,ut));break;case\"select\":case\"lasso\":G$t(ce,Ze,ut,g,pt);break}},d9.init(g)};Nd.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=Lx.radialDragBoxSize,h=f/2;if(!c.visible)return;var d=Px(n.radialAxisAngle),v=c._rl,_=v[0],b=v[1],p=v[r],k=.75*(v[1]-v[0])/(1-n.getHole(t))/o,E,S,L;r?(E=l+(o+h)*Math.cos(d),S=u-(o+h)*Math.sin(d),L=\"radialdrag\"):(E=l+(s-h)*Math.cos(d),S=u-(s-h)*Math.sin(d),L=\"radialdrag-inner\");var x=y1.makeRectDragger(a,L,\"crosshair\",-h,-h,f,f),C={element:x,gd:i};e.dragmode===!1&&(C.dragmode=!1),fC(pw.select(x),c.visible&&s0!=(r?P>_: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 GJe(e,t){var r=function(i){return Xc.angleDist(e,i)},n=Xc.findIndexOfMin(t,r);return t[n]}function fC(e,t,r){return t?(e.attr(\"display\",null),e.attr(r)):e&&e.attr(\"display\",\"none\"),e}});var Z$=ye((Fwr,KJe)=>{\"use strict\";var K$t=Lh(),os=Rd(),J$t=Cc().attributes,c0=Dr().extendFlat,jJe=mc().overrideAll,WJe=jJe({color:os.color,showline:c0({},os.showline,{dflt:!0}),linecolor:os.linecolor,linewidth:os.linewidth,showgrid:c0({},os.showgrid,{dflt:!0}),gridcolor:os.gridcolor,gridwidth:os.gridwidth,griddash:os.griddash},\"plot\",\"from-root\"),XJe=jJe({tickmode:os.minor.tickmode,nticks:os.nticks,tick0:os.tick0,dtick:os.dtick,tickvals:os.tickvals,ticktext:os.ticktext,ticks:os.ticks,ticklen:os.ticklen,tickwidth:os.tickwidth,tickcolor:os.tickcolor,ticklabelstep:os.ticklabelstep,showticklabels:os.showticklabels,labelalias:os.labelalias,minorloglabels:os.minorloglabels,showtickprefix:os.showtickprefix,tickprefix:os.tickprefix,showticksuffix:os.showticksuffix,ticksuffix:os.ticksuffix,showexponent:os.showexponent,exponentformat:os.exponentformat,minexponent:os.minexponent,separatethousands:os.separatethousands,tickfont:os.tickfont,tickangle:os.tickangle,tickformat:os.tickformat,tickformatstops:os.tickformatstops,layer:os.layer},\"plot\",\"from-root\"),ZJe={visible:c0({},os.visible,{dflt:!0}),type:c0({},os.type,{values:[\"-\",\"linear\",\"log\",\"date\",\"category\"]}),autotypenumbers:os.autotypenumbers,autorangeoptions:{minallowed:os.autorangeoptions.minallowed,maxallowed:os.autorangeoptions.maxallowed,clipmin:os.autorangeoptions.clipmin,clipmax:os.autorangeoptions.clipmax,include:os.autorangeoptions.include,editType:\"plot\"},autorange:c0({},os.autorange,{editType:\"plot\"}),rangemode:{valType:\"enumerated\",values:[\"tozero\",\"nonnegative\",\"normal\"],dflt:\"tozero\",editType:\"calc\"},minallowed:c0({},os.minallowed,{editType:\"plot\"}),maxallowed:c0({},os.maxallowed,{editType:\"plot\"}),range:c0({},os.range,{items:[{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}},{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}}],editType:\"plot\"}),categoryorder:os.categoryorder,categoryarray:os.categoryarray,angle:{valType:\"angle\",editType:\"plot\"},autotickangles:os.autotickangles,side:{valType:\"enumerated\",values:[\"clockwise\",\"counterclockwise\"],dflt:\"clockwise\",editType:\"plot\"},title:{text:c0({},os.title.text,{editType:\"plot\",dflt:\"\"}),font:c0({},os.title.font,{editType:\"plot\"}),editType:\"plot\"},hoverformat:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(ZJe,WJe,XJe);var YJe={visible:c0({},os.visible,{dflt:!0}),type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"category\"],dflt:\"-\",editType:\"calc\",_noTemplating:!0},autotypenumbers:os.autotypenumbers,categoryorder:os.categoryorder,categoryarray:os.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:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(YJe,WJe,XJe);KJe.exports={domain:J$t({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:K$t.background},radialaxis:ZJe,angularaxis:YJe,gridshape:{valType:\"enumerated\",values:[\"circular\",\"linear\"],dflt:\"circular\",editType:\"plot\"},uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"}});var e$e=ye((zwr,QJe)=>{\"use strict\";var p9=Dr(),$$t=ka(),Q$t=vl(),eQt=k_(),tQt=Id().getSubplotData,rQt=bb(),iQt=S3(),nQt=e_(),aQt=t_(),oQt=aI(),sQt=e4(),lQt=yB(),uQt=I3(),$Je=Z$(),cQt=U$(),g9=l9(),JJe=g9.axisNames;function fQt(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=$$t.combine(i,n.paper_bgcolor);var a=r(\"sector\");r(\"hole\");var o=tQt(n.fullData,g9.name,n.id),s=n.layoutOut,l;function u(H,N){return r(l+\".\"+H,N)}for(var c=0;c{\"use strict\";var dQt=Id().getSubplotCalcData,vQt=Dr().counterRegex,pQt=X$(),r$e=l9(),i$e=r$e.attr,yw=r$e.name,t$e=vQt(yw),n$e={};n$e[i$e]={valType:\"subplotid\",dflt:yw,editType:\"calc\"};function gQt(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[yw],i=0;i{\"use strict\";var{hovertemplateAttrs:yQt,texttemplateAttrs:_Qt,templatefallbackAttrs:o$e}=Ll(),y9=Ao().extendFlat,xQt=kg(),f0=pf(),bQt=Gl(),X5=f0.line;s$e.exports={mode:f0.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:f0.text,texttemplate:_Qt({editType:\"plot\"},{keys:[\"r\",\"theta\",\"text\"]}),texttemplatefallback:o$e({editType:\"plot\"}),hovertext:f0.hovertext,line:{color:X5.color,width:X5.width,dash:X5.dash,backoff:X5.backoff,shape:y9({},X5.shape,{values:[\"linear\",\"spline\"]}),smoothing:X5.smoothing,editType:\"calc\"},connectgaps:f0.connectgaps,marker:f0.marker,cliponaxis:y9({},f0.cliponaxis,{dflt:!1}),textposition:f0.textposition,textfont:f0.textfont,fill:y9({},f0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:xQt(),hoverinfo:y9({},bQt.hoverinfo,{flags:[\"r\",\"theta\",\"text\",\"name\"]}),hoveron:f0.hoveron,hovertemplate:yQt(),hovertemplatefallback:o$e(),selected:f0.selected,unselected:f0.unselected}});var x9=ye((Bwr,c$e)=>{\"use strict\";var _9=Dr(),Z5=Ru(),wQt=$p(),TQt=R0(),l$e=eT(),AQt=D0(),SQt=Ig(),MQt=Sm().PTS_LINESONLY,EQt=hC();function kQt(e,t,r,n){function i(s,l){return _9.coerce(e,t,EQt,s,l)}var a=u$e(e,t,n,i);if(!a){t.visible=!1;return}i(\"thetaunit\"),i(\"mode\",a{\"use strict\";var CQt=Dr(),f$e=ho();h$e.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=f$e.tickText(o,l,!0).text;var u=s.thetaunit===\"degrees\"?CQt.rad2deg(t.theta):t.theta;return i.thetaLabel=f$e.tickText(s,u,!0).text,i}});var p$e=ye((Uwr,v$e)=>{\"use strict\";var d$e=Eo(),LQt=fs().BADNUM,PQt=ho(),IQt=F0(),RQt=km(),DQt=z0(),FQt=O0().calcMarkerSize;v$e.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 zQt=oT(),g$e=fs().BADNUM;m$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=r.radialAxis,u=r.angularAxis,c=0;c{\"use strict\";var OQt=cT();function qQt(e,t,r,n){var i=OQt(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,_$e(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function _$e(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(\"
\")}}x$e.exports={hoverPoints:qQt,makeHoverPointText:_$e}});var w$e=ye((Hwr,b$e)=>{\"use strict\";b$e.exports={moduleType:\"trace\",name:\"scatterpolar\",basePlotModule:m9(),categories:[\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:hC(),supplyDefaults:x9().supplyDefaults,colorbar:$d(),formatLabels:b9(),calc:p$e(),plot:y$e(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:w9().hoverPoints,selectPoints:fT(),meta:{}}});var A$e=ye((jwr,T$e)=>{\"use strict\";T$e.exports=w$e()});var Y$=ye((Zwr,M$e)=>{\"use strict\";var S$e=hC(),{cliponaxis:Wwr,hoveron:Xwr}=S$e,BQt=lee(S$e,[\"cliponaxis\",\"hoveron\"]),{connectgaps:NQt,line:{color:UQt,dash:VQt,width:GQt},fill:HQt,fillcolor:jQt,marker:WQt,textfont:XQt,textposition:ZQt}=lk();M$e.exports=q1(mg({},BQt),{connectgaps:NQt,fill:HQt,fillcolor:jQt,line:{color:UQt,dash:VQt,editType:\"calc\",width:GQt},marker:WQt,textfont:XQt,textposition:ZQt})});var C$e=ye((Kwr,k$e)=>{\"use strict\";var E$e=Dr(),K$=Ru(),YQt=x9().handleRThetaDefaults,KQt=$p(),JQt=R0(),$Qt=D0(),QQt=Ig(),eer=Sm().PTS_LINESONLY,ter=Y$();k$e.exports=function(t,r,n,i){function a(s,l){return E$e.coerce(t,r,ter,s,l)}var o=YQt(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"mode\",o{\"use strict\";var rer=b9();L$e.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]),rer(t,r,n)}});var R$e=ye(($wr,I$e)=>{\"use strict\";var ier=F0(),ner=O0().calcMarkerSize,aer=K2(),oer=ho(),ser=ox().TOO_MANY_POINTS;I$e.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 ler=NF(),uer=w9().makeHoverPointText;function cer(e,t,r,n){var i=e.cd,a=i[0].t,o=a.r,s=a.theta,l=ler.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,uer(f,h,c,u),l}}D$e.exports={hoverPoints:cer}});var O$e=ye((e3r,z$e)=>{\"use strict\";z$e.exports={moduleType:\"trace\",name:\"scatterpolargl\",basePlotModule:m9(),categories:[\"gl\",\"regl\",\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:Y$(),supplyDefaults:C$e(),colorbar:$d(),formatLabels:P$e(),calc:R$e(),hoverPoints:F$e().hoverPoints,selectPoints:lY(),meta:{}}});var q$e=ye((t3r,J$)=>{\"use strict\";var fer=GF(),her=Eo(),der=hK(),ver=aY(),T9=K2(),A9=Dr(),per=ox().TOO_MANY_POINTS,ger={};J$.exports=function(t,r,n){if(n.length){var i=r.radialAxis,a=r.angularAxis,o=ver(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,_,b=h.slice(),p=d.slice();for(_=0;_=per&&(v.marker.cluster=c.tree),v.marker&&(v.markerSel.positions=v.markerUnsel.positions=v.marker.positions=k),v.line&&k.length>1&&A9.extendFlat(v.line,T9.linePositions(t,u,k)),v.text&&(A9.extendFlat(v.text,{positions:k},T9.textPosition(t,u,v.text,v.marker)),A9.extendFlat(v.textSel,{positions:k},T9.textPosition(t,u,v.text,v.markerSel)),A9.extendFlat(v.textUnsel,{positions:k},T9.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=E,c.y=S,c.rawx=E,c.rawy=S,c.r=h,c.theta=d,c.positions=k,c._scene=o,c.index=o.count,o.count++}}),der(t,r,n)}};J$.exports.reglPrecompiled=ger});var U$e=ye((r3r,N$e)=>{\"use strict\";var B$e=O$e();B$e.plot=q$e();N$e.exports=B$e});var G$e=ye((i3r,V$e)=>{\"use strict\";V$e.exports=U$e()});var $$=ye((n3r,H$e)=>{\"use strict\";var{hovertemplateAttrs:mer,templatefallbackAttrs:yer}=Ll(),Y5=Ao().extendFlat,Ix=hC(),Rx=Lm();H$e.exports={r:Ix.r,theta:Ix.theta,r0:Ix.r0,dr:Ix.dr,theta0:Ix.theta0,dtheta:Ix.dtheta,thetaunit:Ix.thetaunit,base:Y5({},Rx.base,{}),offset:Y5({},Rx.offset,{}),width:Y5({},Rx.width,{}),text:Y5({},Rx.text,{}),hovertext:Y5({},Rx.hovertext,{}),marker:_er(),hoverinfo:Ix.hoverinfo,hovertemplate:mer(),hovertemplatefallback:yer(),selected:Rx.selected,unselected:Rx.unselected};function _er(){var e=Y5({},Rx.marker);return delete e.cornerradius,e}});var Q$=ye((a3r,j$e)=>{\"use strict\";j$e.exports={barmode:{valType:\"enumerated\",values:[\"stack\",\"overlay\"],dflt:\"stack\",editType:\"calc\"},bargap:{valType:\"number\",dflt:.1,min:0,max:1,editType:\"calc\"}}});var Z$e=ye((o3r,X$e)=>{\"use strict\";var W$e=Dr(),xer=x9().handleRThetaDefaults,ber=UI(),wer=$$();X$e.exports=function(t,r,n,i){function a(s,l){return W$e.coerce(t,r,wer,s,l)}var o=xer(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"base\"),a(\"offset\"),a(\"width\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),ber(t,r,a,n,i),W$e.coerceSelectionMarkerOpacity(r,a)}});var K$e=ye((s3r,Y$e)=>{\"use strict\";var Ter=Dr(),Aer=Q$();Y$e.exports=function(e,t,r){var n={},i;function a(l,u){return Ter.coerce(e[i]||{},t[i],Aer,l,u)}for(var o=0;o{\"use strict\";var J$e=pv().hasColorscale,$$e=gv(),Ser=Dr().isArrayOrTypedArray,Mer=p4(),Eer=jb().setGroupPositions,ker=z0(),Cer=qa().traceIs,Ler=Dr().extendFlat;function Per(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 eQe=Oa(),S9=Eo(),K5=Dr(),Rer=So(),tQ=c9();tQe.exports=function(t,r,n){var i=t._context.staticPlot,a=r.xaxis,o=r.yaxis,s=r.radialAxis,l=r.angularAxis,u=Der(r),c=r.layers.frontplot.select(\"g.barlayer\");K5.makeTraceGroups(c,n,\"trace bars\").each(function(){var f=eQe.select(this),h=K5.ensureSingle(f,\"g\",\"points\"),d=h.selectAll(\"g.point\").data(K5.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 _=eQe.select(this),b=v.rp0=s.c2p(v.s0),p=v.rp1=s.c2p(v.s1),k=v.thetag0=l.c2g(v.p0),E=v.thetag1=l.c2g(v.p1),S;if(!S9(b)||!S9(p)||!S9(k)||!S9(E)||b===p||k===E)S=\"M0,0Z\";else{var L=s.c2g(v.s1),x=(k+E)/2;v.ct=[a.c2p(L*Math.cos(x)),o.c2p(L*Math.sin(x))],S=u(b,p,k,E)}K5.ensureSingle(_,\"path\").attr(\"d\",S)}),Rer.setClipUrl(f,r._hasClipOnAxisFalse?r.clipIds.forTraces:null,t)})};function Der(e){var t=e.cxx,r=e.cyy;return e.vangles?function(n,i,a,o){var s,l;K5.angleDelta(a,o)>0?(s=a,l=o):(s=o,l=a);var u=tQ.findEnclosingVertexAngles(s,e.vangles)[0],c=tQ.findEnclosingVertexAngles(l,e.vangles)[1],f=[u,(s+l)/2,c];return tQ.pathPolygonAnnulus(n,i,s,l,f,t,r)}:function(n,i,a,o){return K5.pathAnnulus(n,i,a,o,t,r)}}});var nQe=ye((c3r,iQe)=>{\"use strict\";var Fer=vf(),rQ=Dr(),zer=MT().getTraceColor,Oer=rQ.fillText,qer=w9().makeHoverPointText,Ber=c9().isPtInsidePolygon;iQe.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?Ber:rQ.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 _=function(E){return c(d,v,[E.rp0,E.rp1],[E.thetag0,E.thetag1],u)?f+Math.min(1,Math.abs(E.thetag1-E.thetag0)/h)-1+(E.rp1-d)/(E.rp1-E.rp0)-1:1/0};if(Fer.getClosest(i,_,t),t.index!==!1){var b=t.index,p=i[b];t.x0=t.x1=p.ct[0],t.y0=t.y1=p.ct[1];var k=rQ.extendFlat({},p,{r:p.s,theta:p.p});return Oer(p,a,t),qer(k,a,o,t),t.hovertemplate=a.hovertemplate,t.color=zer(a,p),t.xLabelVal=t.yLabelVal=void 0,p.s<0&&(t.idealAlign=\"left\"),[t]}}});var oQe=ye((f3r,aQe)=>{\"use strict\";aQe.exports={moduleType:\"trace\",name:\"barpolar\",basePlotModule:m9(),categories:[\"polar\",\"bar\",\"showLegend\"],attributes:$$(),layoutAttributes:Q$(),supplyDefaults:Z$e(),supplyLayoutDefaults:K$e(),calc:eQ().calc,crossTraceCalc:eQ().crossTraceCalc,plot:rQe(),colorbar:$d(),formatLabels:b9(),style:N0().style,styleOnSelect:N0().styleOnSelect,hoverPoints:nQe(),selectPoints:ET(),meta:{}}});var lQe=ye((h3r,sQe)=>{\"use strict\";sQe.exports=oQe()});var iQ=ye((d3r,uQe)=>{\"use strict\";uQe.exports={attr:\"subplot\",name:\"smith\",axisNames:[\"realaxis\",\"imaginaryaxis\"],axisName2dataArray:{imaginaryaxis:\"imag\",realaxis:\"real\"}}});var nQ=ye((v3r,dQe)=>{\"use strict\";var Ner=Lh(),Nf=Rd(),Uer=Cc().attributes,Dx=Dr().extendFlat,cQe=mc().overrideAll,fQe=cQe({color:Nf.color,showline:Dx({},Nf.showline,{dflt:!0}),linecolor:Nf.linecolor,linewidth:Nf.linewidth,showgrid:Dx({},Nf.showgrid,{dflt:!0}),gridcolor:Nf.gridcolor,gridwidth:Nf.gridwidth,griddash:Nf.griddash},\"plot\",\"from-root\"),hQe=cQe({ticklen:Nf.ticklen,tickwidth:Dx({},Nf.tickwidth,{dflt:2}),tickcolor:Nf.tickcolor,showticklabels:Nf.showticklabels,labelalias:Nf.labelalias,showtickprefix:Nf.showtickprefix,tickprefix:Nf.tickprefix,showticksuffix:Nf.showticksuffix,ticksuffix:Nf.ticksuffix,tickfont:Nf.tickfont,tickformat:Nf.tickformat,hoverformat:Nf.hoverformat,layer:Nf.layer},\"plot\",\"from-root\"),Ver=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{dflt:[.2,.5,1,2,5],valType:\"data_array\",editType:\"plot\"},tickangle:Dx({},Nf.tickangle,{dflt:90}),ticks:{valType:\"enumerated\",values:[\"top\",\"bottom\",\"\"],editType:\"ticks\"},side:{valType:\"enumerated\",values:[\"top\",\"bottom\"],dflt:\"top\",editType:\"plot\"},editType:\"calc\"},fQe,hQe),Ger=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{valType:\"data_array\",editType:\"plot\"},ticks:Nf.ticks,editType:\"calc\"},fQe,hQe);dQe.exports={domain:Uer({name:\"smith\",editType:\"plot\"}),bgcolor:{valType:\"color\",editType:\"plot\",dflt:Ner.background},realaxis:Ver,imaginaryaxis:Ger,editType:\"calc\"}});var gQe=ye((p3r,pQe)=>{\"use strict\";var J5=Dr(),Her=ka(),jer=vl(),Wer=k_(),Xer=Id().getSubplotData,Zer=t_(),Yer=e_(),Ker=e4(),Jer=ym(),$5=nQ(),aQ=iQ(),vQe=aQ.axisNames,$er=etr(function(e){return J5.isTypedArray(e)&&(e=Array.from(e)),e.slice().reverse().map(function(t){return-t}).concat([0]).concat(e)},String);function Qer(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=Her.combine(i,n.paper_bgcolor);var a=Xer(n.fullData,aQ.name,n.id),o=n.layoutOut,s;function l(L,x){return r(s+\".\"+L,x)}for(var u=0;u{\"use strict\";var ttr=Id().getSubplotCalcData,rtr=Dr().counterRegex,itr=X$(),yQe=iQ(),_Qe=yQe.attr,_w=yQe.name,mQe=rtr(_w),xQe={};xQe[_Qe]={valType:\"subplotid\",dflt:_w,editType:\"calc\"};function ntr(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[_w],i=0;i{\"use strict\";var{hovertemplateAttrs:otr,texttemplateAttrs:str,templatefallbackAttrs:TQe}=Ll(),M9=Ao().extendFlat,ltr=kg(),h0=pf(),utr=Gl(),Q5=h0.line;AQe.exports={mode:h0.mode,real:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},imag:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},text:h0.text,texttemplate:str({editType:\"plot\"},{keys:[\"real\",\"imag\",\"text\"]}),texttemplatefallback:TQe({editType:\"plot\"}),hovertext:h0.hovertext,line:{color:Q5.color,width:Q5.width,dash:Q5.dash,backoff:Q5.backoff,shape:M9({},Q5.shape,{values:[\"linear\",\"spline\"]}),smoothing:Q5.smoothing,editType:\"calc\"},connectgaps:h0.connectgaps,marker:h0.marker,cliponaxis:M9({},h0.cliponaxis,{dflt:!1}),textposition:h0.textposition,textfont:h0.textfont,fill:M9({},h0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:ltr(),hoverinfo:M9({},utr.hoverinfo,{flags:[\"real\",\"imag\",\"text\",\"name\"]}),hoveron:h0.hoveron,hovertemplate:otr(),hovertemplatefallback:TQe(),selected:h0.selected,unselected:h0.unselected}});var EQe=ye((y3r,MQe)=>{\"use strict\";var E9=Dr(),eS=Ru(),ctr=$p(),ftr=R0(),SQe=eT(),htr=D0(),dtr=Ig(),vtr=Sm().PTS_LINESONLY,ptr=oQ();MQe.exports=function(t,r,n,i){function a(l,u){return E9.coerce(t,r,ptr,l,u)}var o=gtr(t,r,i,a);if(!o){r.visible=!1;return}a(\"mode\",o{\"use strict\";var kQe=ho();CQe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot;return i.realLabel=kQe.tickText(a.radialAxis,t.real,!0).text,i.imagLabel=kQe.tickText(a.angularAxis,t.imag,!0).text,i}});var RQe=ye((x3r,IQe)=>{\"use strict\";var PQe=Eo(),mtr=fs().BADNUM,ytr=F0(),_tr=km(),xtr=z0(),btr=O0().calcMarkerSize;IQe.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 wtr=oT(),DQe=fs().BADNUM,Ttr=H$(),Atr=Ttr.smith;FQe.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 Str=cT();function Mtr(e,t,r,n){var i=Str(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,OQe(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function OQe(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(\"
\")}}qQe.exports={hoverPoints:Mtr,makeHoverPointText:OQe}});var UQe=ye((T3r,NQe)=>{\"use strict\";NQe.exports={moduleType:\"trace\",name:\"scattersmith\",basePlotModule:wQe(),categories:[\"smith\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:oQ(),supplyDefaults:EQe(),colorbar:$d(),formatLabels:LQe(),calc:RQe(),plot:zQe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:BQe().hoverPoints,selectPoints:fT(),meta:{}}});var GQe=ye((A3r,VQe)=>{\"use strict\";VQe.exports=UQe()});var kv=ye((S3r,jQe)=>{var C9=Oh();function HQe(){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={}}C9(HQe.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 sQ(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(Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/,this._calendar.local.name)}function k9(e,t){return e=\"\"+e,\"000000\".substring(0,t-e.length)+e}C9(sQ.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(Gs.local.invalidDate||Gs.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(Gs.local.differentCalendars||Gs.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?\"-\":\"\")+k9(Math.abs(this.year()),4)+\"-\"+k9(this.month(),2)+\"-\"+k9(this.day(),2)}});function lQ(){this.shortYearCutoff=\"+10\"}C9(lQ.prototype,{_validateLevel:0,newDate:function(e,t,r){return e==null?this.today():(e.year&&(this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),r=e.day(),t=e.month(),e=e.year()),new sQ(this,e,t,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.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,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return(t.year()<0?\"-\":\"\")+k9(Math.abs(t.year()),4)},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear),12},monthOfYear:function(e,t){var r=this._validate(e,t,this.minDay,Gs.local.invalidMonth||Gs.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,Gs.local.invalidMonth||Gs.regionalOptions[\"\"].invalidMonth),r},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return this.leapYear(t)?366:365},dayOfYear:function(e,t,r){var n=this._validate(e,t,r,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(e,t,r){return this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),{}},add:function(e,t,r){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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 Gs=jQe.exports=new HQe;Gs.cdate=sQ;Gs.baseCalendar=lQ;Gs.calendars.gregorian=uQ});var WQe=ye(()=>{var cQ=Oh(),Ud=kv();cQ(Ud.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\"});Ud.local=Ud.regionalOptions[\"\"];cQ(Ud.cdate.prototype,{formatDate:function(e,t){return typeof e!=\"string\"&&(t=e,e=\"\"),this._calendar.formatDate(e||\"\",this,t)}});cQ(Ud.baseCalendar.prototype,{UNIX_EPOCH:Ud.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:24*60*60,TICKS_EPOCH:Ud.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 Ud.local.invalidFormat||Ud.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(S,L){for(var x=1;E+x1},c=function(S,L,x,C){var M=\"\"+L;if(u(S,C))for(;M.length1},k=function(z,O){var V=p(z,O),G=[2,3,V?4:2,V?4:2,10,11,20][\"oyYJ@!\".indexOf(z)+1],Z=new RegExp(\"^-?\\\\d{1,\"+G+\"}\"),H=t.substring(M).match(Z);if(!H)throw(Ud.local.missingNumberAt||Ud.regionalOptions[\"\"].missingNumberAt).replace(/\\{0\\}/,M);return M+=H[0].length,parseInt(H[0],10)},E=this,S=function(){if(typeof s==\"function\"){p(\"m\");var z=s.call(E,t.substring(M));return M+=z.length,z}return k(\"m\")},L=function(z,O,V,G){for(var Z=p(z,G)?V:O,H=0;H-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 XQe=ye(()=>{var Fx=kv(),Etr=Oh(),fQ=Fx.instance();function L9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}L9.prototype=new Fx.baseCalendar;Etr(L9.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(Ctr);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(Ltr);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(Ptr);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 Fx.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 Fx.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,Fx.local.invalidyear),i=Ox[n-Ox[0]],a=i>>9&4095,o=i>>5&15,s=i&31,l;l=fQ.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 Fx.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,Fx.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=Rtr(e,a,r,i);return fQ.toJD(o.year,o.month,o.day)},fromJD:function(e){var t=fQ.fromJD(e),r=Itr(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(ktr),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(L9.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 ktr=/^\\s*(-?\\d\\d\\d\\d|\\d\\d)[-/](\\d?\\d)([iI]?)[-/](\\d?\\d)/m,Ctr=/^\\d?\\d[iI]?/m,Ltr=/^\u95f0?\u5341?[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]?\u6708/m,Ptr=/^\u95f0?\u5341?[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]?/m;Fx.calendars.chinese=L9;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],Ox=[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 Itr(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=Ox[i.year-Ox[0]],c=i.year<<9|i.month<<5|i.day;a.year=c>=u?i.year:i.year-1,u=Ox[a.year-Ox[0]];var f=u>>9&4095,h=u>>5&15,d=u&31,v,_=new Date(f,h-1,d),b=new Date(i.year,i.month-1,i.day);v=Math.round((b-_)/(24*3600*1e3));var p=zx[a.year-zx[0]],k;for(k=0;k<13;k++){var E=p&1<<12-k?30:29;if(v>13;return!S||k=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 _=0;_>9&4095,E=p>>5&15,S=p&31,L=new Date(k,E-1,S+f);return a.year=L.getFullYear(),a.month=1+L.getMonth(),a.day=L.getDate(),a}});var ZQe=ye(()=>{var xw=kv(),Dtr=Oh();function hQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}hQ.prototype=new xw.baseCalendar;Dtr(hQ.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,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.coptic=hQ});var YQe=ye(()=>{var x1=kv(),Ftr=Oh();function dQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}dQ.prototype=new x1.baseCalendar;Ftr(dQ.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,x1.local.invalidYear),!1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.local.invalidYear),13},daysInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.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,x1.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,x1.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,x1.local.invalidDate);return{century:ztr[Math.floor((n.year()-1)/100)+1]||\"\"}},toJD:function(e,t,r){var n=this._validate(e,t,r,x1.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 ztr={20:\"Fruitbat\",21:\"Anchovy\"};x1.calendars.discworld=dQ});var KQe=ye(()=>{var bw=kv(),Otr=Oh();function vQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}vQ.prototype=new bw.baseCalendar;Otr(vQ.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,bw.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,bw.local.invalidYear||bw.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,bw.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,bw.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)}});bw.calendars.ethiopian=vQ});var JQe=ye(()=>{var qx=kv(),qtr=Oh();function pQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}pQ.prototype=new qx.baseCalendar;qtr(pQ.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,P9(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&&P9(this.daysInYear(e),10)===5?30:t===9&&P9(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 P9(e,t){return e-t*Math.floor(e/t)}qx.calendars.hebrew=pQ});var $Qe=ye(()=>{var dC=kv(),Btr=Oh();function gQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}gQ.prototype=new dC.baseCalendar;Btr(gQ.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,dC.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,dC.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,dC.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)}});dC.calendars.islamic=gQ});var QQe=ye(()=>{var vC=kv(),Ntr=Oh();function mQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}mQ.prototype=new vC.baseCalendar;Ntr(mQ.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,vC.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,vC.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,vC.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)}});vC.calendars.julian=mQ});var tet=ye(()=>{var ug=kv(),Utr=Oh();function _Q(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}_Q.prototype=new ug.baseCalendar;Utr(_Q.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=yQ(e+8+17*20,365);return[Math.floor(t/20)+1,yQ(t,20)]},_toTzolkin:function(e){return e-=this.jdEpoch,[eet(e+20,20),eet(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 yQ(e,t){return e-t*Math.floor(e/t)}function eet(e,t){return yQ(e-1,t)+1}ug.calendars.mayan=_Q});var iet=ye(()=>{var ww=kv(),Vtr=Oh();function xQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}xQ.prototype=new ww.baseCalendar;var ret=ww.instance(\"gregorian\");Vtr(xQ.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,ww.local.invalidYear||ww.regionalOptions[\"\"].invalidYear);return ret.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,ww.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,ww.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)}});ww.calendars.nanakshahi=xQ});var net=ye(()=>{var Tw=kv(),Gtr=Oh();function bQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}bQ.prototype=new Tw.baseCalendar;Gtr(bQ.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,Tw.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,Tw.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,Tw.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=Tw.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=Tw.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 tS=kv(),Htr=Oh();function R9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}function I9(e){var t=e-475;e<0&&t++;var r=.242197,n=r*t,i=r*(t+1),a=n-Math.floor(n),o=i-Math.floor(i);return a>o}R9.prototype=new tS.baseCalendar;Htr(R9.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\",\"Dey\",\"Bahman\",\"Esfand\"],monthNamesShort:[\"Far\",\"Ord\",\"Kho\",\"Tir\",\"Mor\",\"Sha\",\"Meh\",\"Aba\",\"Aza\",\"Dey\",\"Bah\",\"Esf\"],dayNames:[\"Yekshanbeh\",\"Doshanbeh\",\"Seshanbeh\",\"Chah\\u0101rshanbeh\",\"Panjshanbeh\",\"Jom'eh\",\"Shanbeh\"],dayNamesShort:[\"Yek\",\"Do\",\"Se\",\"Cha\",\"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,tS.local.invalidYear);return I9(t.year())},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,tS.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,tS.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=0;if(e>0)for(var a=1;a0?e-1:e)*365+i+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e)+.5;var t=475+(e-this.toJD(475,1,1))/365.242197,r=Math.floor(t);r<=0&&r--,e>this.toJD(r,12,I9(r)?30:29)&&(r++,r===0&&r++);var n=e-this.toJD(r,1,1)+1,i=n<=186?Math.ceil(n/31):Math.ceil((n-6)/30),a=e-this.toJD(r,i,1)+1;return this.newDate(r,i,a)}});tS.calendars.persian=R9;tS.calendars.jalali=R9});var oet=ye(()=>{var Aw=kv(),jtr=Oh(),D9=Aw.instance();function wQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}wQ.prototype=new Aw.baseCalendar;jtr(wQ.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,Aw.local.invalidYear),r=this._t2gYear(t.year());return D9.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 D9.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 D9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=D9.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)}});Aw.calendars.taiwan=wQ});var set=ye(()=>{var Sw=kv(),Wtr=Oh(),F9=Sw.instance();function TQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}TQ.prototype=new Sw.baseCalendar;Wtr(TQ.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,Sw.local.invalidYear),r=this._t2gYear(t.year());return F9.leapYear(r)},weekOfYear:function(i,t,r){var n=this._validate(i,this.minMonth,this.minDay,Sw.local.invalidYear),i=this._t2gYear(n.year());return F9.weekOfYear(i,n.month(),n.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,Sw.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,Sw.local.invalidDate),i=this._t2gYear(n.year());return F9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=F9.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)}});Sw.calendars.thai=TQ});var uet=ye(()=>{var Mw=kv(),Xtr=Oh();function AQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}AQ.prototype=new Mw.baseCalendar;Xtr(AQ.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,Mw.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,Mw.local.invalidMonth),n=r.toJD()-24e5+.5,i=0,a=0;an)return Bx[i]-Bx[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,Mw.local.invalidDate),i=12*(n.year()-1)+n.month()-15292,a=n.day()+Bx[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-Bx[r-1]+1;return this.newDate(o,s,l)},isValid:function(e,t,r){var n=Mw.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=Mw.baseCalendar.prototype._validate.apply(this,arguments);if(i.year<1276||i.year>1500)throw n.replace(/\\{0\\}/,this.local.name);return i}});Mw.calendars.ummalqura=AQ;var Bx=[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 fet=ye((rTr,cet)=>{\"use strict\";cet.exports=kv();WQe();XQe();ZQe();YQe();KQe();JQe();$Qe();QQe();tet();iet();net();aet();oet();set();uet()});var yet=ye((iTr,met)=>{\"use strict\";var det=fet(),pC=Dr(),vet=fs(),Ztr=vet.EPOCHJD,Ytr=vet.ONEDAY,EQ={valType:\"enumerated\",values:pC.sortObjectKeys(det.calendars),editType:\"calc\",dflt:\"gregorian\"},pet=function(e,t,r,n){var i={};return i[r]=EQ,pC.coerce(e,t,i,r,n)},Ktr=function(e,t,r,n){for(var i=0;i{\"use strict\";_et.exports=yet()});var rrr=ye((aTr,wet)=>{var bet=rye();bet.register([a1e(),W1e(),oxe(),Exe(),Uxe(),Obe(),Kbe(),O2e(),hwe(),Zwe(),F3e(),XEe(),zke(),E6e(),pLe(),WLe(),gPe(),UIe(),o8e(),A8e(),z8e(),K8e(),fRe(),ERe(),tFe(),bFe(),qBe(),qNe(),ZUe(),xVe(),LGe(),jGe(),pHe(),Eje(),Vje(),hWe(),bXe(),jXe(),MZe(),ZYe(),yKe(),BKe(),fJe(),SJe(),A$e(),G$e(),lQe(),GQe(),xet()]);wet.exports=bet});return rrr();})();\n", "/*!\n", " * pad-left \n", " *\n", @@ -4315,7 +4262,7 @@ "output_type": "stream", "text": [ "Efficiency range: 33.8% - 41.9%\n", - "Total cost: 182.96 €\n" + "Total cost: 182.96 \u20ac\n" ] } ], @@ -4326,7 +4273,7 @@ "efficiency = elec / fuel\n", "\n", "print(f'Efficiency range: {float(efficiency.min()):.1%} - {float(efficiency.max()):.1%}')\n", - "print(f'Total cost: {fs.solution[\"costs\"].item():.2f} €')" + "print(f'Total cost: {fs.solution[\"costs\"].item():.2f} \u20ac')" ] }, { diff --git a/docs/notebooks/06c-piecewise-effects.ipynb b/docs/notebooks/06c-piecewise-effects.ipynb index 8f44b9cf2..3bc6c3943 100644 --- a/docs/notebooks/06c-piecewise-effects.ipynb +++ b/docs/notebooks/06c-piecewise-effects.ipynb @@ -57,11 +57,11 @@ "\n", "| Tier | Size Range | Cost per kWh | Notes |\n", "|------|------------|--------------|-------|\n", - "| Small | 50-100 kWh | 0.20 €/kWh | Residential units |\n", + "| Small | 50-100 kWh | 0.20 \u20ac/kWh | Residential units |\n", "| *Gap* | 100-200 kWh | *unavailable* | No products in this range |\n", - "| Medium | 200-400 kWh | 0.12 €/kWh | Commercial units |\n", + "| Medium | 200-400 kWh | 0.12 \u20ac/kWh | Commercial units |\n", "| *Gap* | 400-500 kWh | *unavailable* | No products in this range |\n", - "| Large | 500-800 kWh | 0.06 €/kWh | Industrial units |\n", + "| Large | 500-800 kWh | 0.06 \u20ac/kWh | Industrial units |\n", "\n", "The gaps represent size ranges where no products are available from manufacturers." ] @@ -92,9 +92,9 @@ "output_type": "stream", "text": [ "Available size tiers:\n", - " Small: 50-100 kWh at 0.20 €/kWh\n", - " Medium: 200-400 kWh at 0.12 €/kWh\n", - " Large: 500-800 kWh at 0.06 €/kWh\n" + " Small: 50-100 kWh at 0.20 \u20ac/kWh\n", + " Medium: 200-400 kWh at 0.12 \u20ac/kWh\n", + " Large: 500-800 kWh at 0.06 \u20ac/kWh\n" ] } ], @@ -112,18 +112,18 @@ " piecewise_shares={\n", " 'costs': fx.Piecewise(\n", " [\n", - " fx.Piece(start=10, end=20), # 50kWh=10€, 100kWh=20€ → 0.20 €/kWh\n", - " fx.Piece(start=24, end=48), # 200kWh=24€, 400kWh=48€ → 0.12 €/kWh\n", - " fx.Piece(start=30, end=48), # 500kWh=30€, 800kWh=48€ → 0.06 €/kWh\n", + " fx.Piece(start=10, end=20), # 50kWh=10\u20ac, 100kWh=20\u20ac \u2192 0.20 \u20ac/kWh\n", + " fx.Piece(start=24, end=48), # 200kWh=24\u20ac, 400kWh=48\u20ac \u2192 0.12 \u20ac/kWh\n", + " fx.Piece(start=30, end=48), # 500kWh=30\u20ac, 800kWh=48\u20ac \u2192 0.06 \u20ac/kWh\n", " ]\n", " )\n", " },\n", ")\n", "\n", "print('Available size tiers:')\n", - "print(' Small: 50-100 kWh at 0.20 €/kWh')\n", - "print(' Medium: 200-400 kWh at 0.12 €/kWh')\n", - "print(' Large: 500-800 kWh at 0.06 €/kWh')" + "print(' Small: 50-100 kWh at 0.20 \u20ac/kWh')\n", + "print(' Medium: 200-400 kWh at 0.12 \u20ac/kWh')\n", + "print(' Large: 500-800 kWh at 0.06 \u20ac/kWh')" ] }, { @@ -202,63 +202,6 @@ } }, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running HiGHS 1.12.0 (git hash: 755a8e0): Copyright (c) 2025 HiGHS under MIT licence terms\n", - "MIP linopy-problem-wrb0ote0 has 437 rows; 294 cols; 1098 nonzeros; 54 integer variables (54 binary)\n", - "Coefficient ranges:\n", - " Matrix [1e-05, 8e+02]\n", - " Cost [1e+00, 1e+00]\n", - " Bound [1e+00, 8e+02]\n", - " RHS [1e+00, 1e+00]\n", - "Presolving model\n", - "253 rows, 159 cols, 588 nonzeros 0s\n", - "152 rows, 107 cols, 504 nonzeros 0s\n", - "151 rows, 107 cols, 500 nonzeros 0s\n", - "Presolve reductions: rows 151(-286); columns 107(-187); nonzeros 500(-598) \n", - "\n", - "Solving MIP model with:\n", - " 151 rows\n", - " 107 cols (52 binary, 0 integer, 0 implied int., 55 continuous, 0 domain fixed)\n", - " 500 nonzeros\n", - "\n", - "Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic;\n", - " I => Shifting; J => Feasibility jump; L => Sub-MIP; P => Empty MIP; R => Randomized rounding;\n", - " S => Solve LP; T => Evaluate node; U => Unbounded; X => User solution; Y => HiGHS solution;\n", - " Z => ZI Round; l => Trivial lower; p => Trivial point; u => Trivial upper; z => Trivial zero\n", - "\n", - " Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work \n", - "Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time\n", - "\n", - " J 0 0 0 0.00% -inf 359 Large 0 0 0 0 0.0s\n", - " 0 0 0 0.00% 248.9944598 359 30.64% 0 0 0 62 0.0s\n", - " L 0 0 0 0.00% 248.9944598 248.9944598 0.00% 32 11 0 73 0.0s\n", - " 1 0 1 100.00% 248.9944598 248.9944598 0.00% 32 11 0 82 0.0s\n", - "\n", - "Solving report\n", - " Model linopy-problem-wrb0ote0\n", - " Status Optimal\n", - " Primal bound 248.994459834\n", - " Dual bound 248.994459834\n", - " Gap 0% (tolerance: 1%)\n", - " P-D integral 0.00660979209716\n", - " Solution status feasible\n", - " 248.994459834 (objective)\n", - " 0 (bound viol.)\n", - " 6.43929354283e-15 (int. viol.)\n", - " 0 (row viol.)\n", - " Timing 0.03\n", - " Max sub-MIP depth 1\n", - " Nodes 1\n", - " Repair LPs 0\n", - " LP iterations 82\n", - " 0 (strong br.)\n", - " 11 (separation)\n", - " 9 (heuristics)\n" - ] - }, { "data": { "text/plain": [ @@ -267,7 +210,7 @@ "Timesteps: 24 (Hour) [2024-01-01 to 2024-01-01]\n", "Periods: None\n", "Scenarios: None\n", - "Status: ✓\n", + "Status: \u2713\n", "\n", "Components (3 items)\n", "--------------------\n", @@ -302,7 +245,7 @@ "\n", "fs.add_elements(\n", " fx.Bus('Elec'),\n", - " fx.Effect('costs', '€', is_standard=True, is_objective=True),\n", + " fx.Effect('costs', '\u20ac', is_standard=True, is_objective=True),\n", " # Grid with time-varying price\n", " fx.Source('Grid', outputs=[fx.Flow('Elec', bus='Elec', size=500, effects_per_flow_hour=elec_price)]),\n", " # Battery with PIECEWISE investment cost (discrete tiers)\n", @@ -322,7 +265,7 @@ " fx.Sink('Demand', inputs=[fx.Flow('Elec', bus='Elec', size=1, fixed_relative_profile=demand)]),\n", ")\n", "\n", - "fs.optimize(fx.solvers.HighsSolver())" + "fs.optimize(fx.solvers.HighsSolver());" ] }, { @@ -4162,7 +4105,7 @@ "#endif\n", "`}),staticAttributes:Q,staticUniforms:qe}}class kr{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,le,qe,Xe,ot,Tt){this.context=w;let Yt=this.boundPaintVertexBuffers.length!==ee.length;for(let Kt=0;!Yt&&Kt({u_matrix:ue,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 vi(ue){let w=[];for(let B=0;B({u_depth:new a.aH(Ht,tr.u_depth),u_terrain:new a.aH(Ht,tr.u_terrain),u_terrain_dim:new a.aI(Ht,tr.u_terrain_dim),u_terrain_matrix:new a.aJ(Ht,tr.u_terrain_matrix),u_terrain_unpack:new a.aK(Ht,tr.u_terrain_unpack),u_terrain_exaggeration:new a.aI(Ht,tr.u_terrain_exaggeration)}))(w,Ft),this.binderUniforms=Q?Q.getUniforms(w,Ft):[]}draw(w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve,be,De,Be,et){let We=w.gl;if(this.failedToCreate)return;if(w.program.set(this.program),w.setDepthMode(Q),w.setStencilMode(ee),w.setColorMode(le),w.setCullFace(qe),ot){w.activeTexture.set(We.TEXTURE2),We.bindTexture(We.TEXTURE_2D,ot.depthTexture),w.activeTexture.set(We.TEXTURE3),We.bindTexture(We.TEXTURE_2D,ot.texture);for(let Ft in this.terrainUniforms)this.terrainUniforms[Ft].set(ot[Ft])}for(let Ft in this.fixedUniforms)this.fixedUniforms[Ft].set(Xe[Ft]);be&&be.setUniforms(w,this.binderUniforms,Ir,{zoom:ve});let it=0;switch(B){case We.LINES:it=2;break;case We.TRIANGLES:it=3;break;case We.LINE_STRIP:it=1}for(let Ft of xr.get()){let Ht=Ft.vaos||(Ft.vaos={});(Ht[Tt]||(Ht[Tt]=new kr)).bind(w,this,Yt,be?be.getPaintVertexBuffers():[],Kt,Ft.vertexOffset,De,Be,et),We.drawElements(B,Ft.primitiveLength*it,We.UNSIGNED_SHORT,Ft.primitiveOffset*it*2)}}}function An(ue,w,B){let Q=1/In(B,1,w.transform.tileZoom),ee=Math.pow(2,B.tileID.overscaledZ),le=B.tileSize*Math.pow(2,w.transform.tileZoom)/ee,qe=le*(B.tileID.canonical.x+B.tileID.wrap*ee),Xe=le*B.tileID.canonical.y;return{u_image:0,u_texsize:B.imageAtlasTexture.size,u_scale:[Q,ue.fromScale,ue.toScale],u_fade:ue.t,u_pixel_coord_upper:[qe>>16,Xe>>16],u_pixel_coord_lower:[65535&qe,65535&Xe]}}let Mn=(ue,w,B,Q)=>{let ee=w.style.light,le=ee.properties.get(\"position\"),qe=[le.x,le.y,le.z],Xe=function(){var Tt=new a.A(9);return a.A!=Float32Array&&(Tt[1]=0,Tt[2]=0,Tt[3]=0,Tt[5]=0,Tt[6]=0,Tt[7]=0),Tt[0]=1,Tt[4]=1,Tt[8]=1,Tt}();ee.properties.get(\"anchor\")===\"viewport\"&&function(Tt,Yt){var Kt=Math.sin(Yt),xr=Math.cos(Yt);Tt[0]=xr,Tt[1]=Kt,Tt[2]=0,Tt[3]=-Kt,Tt[4]=xr,Tt[5]=0,Tt[6]=0,Tt[7]=0,Tt[8]=1}(Xe,-w.transform.angle),function(Tt,Yt,Kt){var xr=Yt[0],Ir=Yt[1],ve=Yt[2];Tt[0]=xr*Kt[0]+Ir*Kt[3]+ve*Kt[6],Tt[1]=xr*Kt[1]+Ir*Kt[4]+ve*Kt[7],Tt[2]=xr*Kt[2]+Ir*Kt[5]+ve*Kt[8]}(qe,qe,Xe);let ot=ee.properties.get(\"color\");return{u_matrix:ue,u_lightpos:qe,u_lightintensity:ee.properties.get(\"intensity\"),u_lightcolor:[ot.r,ot.g,ot.b],u_vertical_gradient:+B,u_opacity:Q}},Li=(ue,w,B,Q,ee,le,qe)=>a.e(Mn(ue,w,B,Q),An(le,w,qe),{u_height_factor:-Math.pow(2,ee.overscaledZ)/qe.tileSize/8}),_n=ue=>({u_matrix:ue}),ya=(ue,w,B,Q)=>a.e(_n(ue),An(B,w,Q)),Jn=(ue,w)=>({u_matrix:ue,u_world:w}),Ma=(ue,w,B,Q,ee)=>a.e(ya(ue,w,B,Q),{u_world:ee}),_o=(ue,w,B,Q)=>{let ee=ue.transform,le,qe;if(Q.paint.get(\"circle-pitch-alignment\")===\"map\"){let Xe=In(B,1,ee.zoom);le=!0,qe=[Xe,Xe]}else le=!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:ue.translatePosMatrix(w.posMatrix,B,Q.paint.get(\"circle-translate\"),Q.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+le,u_device_pixel_ratio:ue.pixelRatio,u_extrude_scale:qe}},No=(ue,w,B)=>({u_matrix:ue,u_inv_matrix:w,u_camera_to_center_distance:B.cameraToCenterDistance,u_viewport_size:[B.width,B.height]}),po=(ue,w,B=1)=>({u_matrix:ue,u_color:w,u_overlay:0,u_overlay_scale:B}),Lo=ue=>({u_matrix:ue}),ko=(ue,w,B,Q)=>({u_matrix:ue,u_extrude_scale:In(w,1,B),u_intensity:Q}),Ds=(ue,w,B,Q)=>{let ee=a.H();a.aP(ee,0,ue.width,ue.height,0,0,1);let le=ue.context.gl;return{u_matrix:ee,u_world:[le.drawingBufferWidth,le.drawingBufferHeight],u_image:B,u_color_ramp:Q,u_opacity:w.paint.get(\"heatmap-opacity\")}};function Fs(ue,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 ll=(ue,w,B,Q)=>{let ee=ue.transform;return{u_matrix:As(ue,w,B,Q),u_ratio:1/In(w,1,ee.zoom),u_device_pixel_ratio:ue.pixelRatio,u_units_to_pixels:[1/ee.pixelsToGLUnits[0],1/ee.pixelsToGLUnits[1]]}},ul=(ue,w,B,Q,ee)=>a.e(ll(ue,w,B,ee),{u_image:0,u_image_height:Q}),zl=(ue,w,B,Q,ee)=>{let le=ue.transform,qe=il(w,le);return{u_matrix:As(ue,w,B,ee),u_texsize:w.imageAtlasTexture.size,u_ratio:1/In(w,1,le.zoom),u_device_pixel_ratio:ue.pixelRatio,u_image:0,u_scale:[qe,Q.fromScale,Q.toScale],u_fade:Q.t,u_units_to_pixels:[1/le.pixelsToGLUnits[0],1/le.pixelsToGLUnits[1]]}},us=(ue,w,B,Q,ee,le)=>{let qe=ue.lineAtlas,Xe=il(w,ue.transform),ot=B.layout.get(\"line-cap\")===\"round\",Tt=qe.getDash(Q.from,ot),Yt=qe.getDash(Q.to,ot),Kt=Tt.width*ee.fromScale,xr=Yt.width*ee.toScale;return a.e(ll(ue,w,B,le),{u_patternscale_a:[Xe/Kt,-Tt.height/2],u_patternscale_b:[Xe/xr,-Yt.height/2],u_sdfgamma:qe.width/(256*Math.min(Kt,xr)*ue.pixelRatio)/2,u_image:0,u_tex_y_a:Tt.y,u_tex_y_b:Yt.y,u_mix:ee.t})};function il(ue,w){return 1/In(ue,1,w.tileZoom)}function As(ue,w,B,Q){return ue.translatePosMatrix(Q?Q.posMatrix:w.tileID.posMatrix,w,B.paint.get(\"line-translate\"),B.paint.get(\"line-translate-anchor\"))}let cl=(ue,w,B,Q,ee)=>{return{u_matrix:ue,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:(le=ee.paint.get(\"raster-contrast\"),le>0?1/(1-le):1+le),u_spin_weights:Ks(ee.paint.get(\"raster-hue-rotate\"))};var le,qe};function Ks(ue){ue*=Math.PI/180;let w=Math.sin(ue),B=Math.cos(ue);return[(2*B+1)/3,(-Math.sqrt(3)*w-B+1)/3,(Math.sqrt(3)*w-B+1)/3]}let zs=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>{let ve=qe.transform;return{u_is_size_zoom_constant:+(ue===\"constant\"||ue===\"source\"),u_is_size_feature_constant:+(ue===\"constant\"||ue===\"camera\"),u_size_t:w?w.uSizeT:0,u_size:w?w.uSize:0,u_camera_to_center_distance:ve.cameraToCenterDistance,u_pitch:ve.pitch/360*2*Math.PI,u_rotate_symbol:+B,u_aspect_ratio:ve.width/ve.height,u_fade_change:qe.options.fadeDuration?qe.symbolFadeChange:1,u_matrix:Xe,u_label_plane_matrix:ot,u_coord_matrix:Tt,u_is_text:+Kt,u_pitch_with_map:+Q,u_is_along_line:ee,u_is_variable_anchor:le,u_texsize:xr,u_texture:0,u_translation:Yt,u_pitched_scale:Ir}},Io=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve)=>{let be=qe.transform;return a.e(zs(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,ve),{u_gamma_scale:Q?Math.cos(be._pitch)*be.cameraToCenterDistance:1,u_device_pixel_ratio:qe.pixelRatio,u_is_halo:+Ir})},ls=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>a.e(Io(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,!0,Kt,!0,Ir),{u_texsize_icon:xr,u_texture_icon:1}),Zl=(ue,w,B)=>({u_matrix:ue,u_opacity:w,u_color:B}),Su=(ue,w,B,Q,ee,le)=>a.e(function(qe,Xe,ot,Tt){let Yt=ot.imageManager.getPattern(qe.from.toString()),Kt=ot.imageManager.getPattern(qe.to.toString()),{width:xr,height:Ir}=ot.imageManager.getPixelSize(),ve=Math.pow(2,Tt.tileID.overscaledZ),be=Tt.tileSize*Math.pow(2,ot.transform.tileZoom)/ve,De=be*(Tt.tileID.canonical.x+Tt.tileID.wrap*ve),Be=be*Tt.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Yt.tl,u_pattern_br_a:Yt.br,u_pattern_tl_b:Kt.tl,u_pattern_br_b:Kt.br,u_texsize:[xr,Ir],u_mix:Xe.t,u_pattern_size_a:Yt.displaySize,u_pattern_size_b:Kt.displaySize,u_scale_a:Xe.fromScale,u_scale_b:Xe.toScale,u_tile_units_to_pixels:1/In(Tt,1,ot.transform.tileZoom),u_pixel_coord_upper:[De>>16,Be>>16],u_pixel_coord_lower:[65535&De,65535&Be]}}(Q,le,B,ee),{u_matrix:ue,u_opacity:w}),nc={fillExtrusion:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_opacity:new a.aI(ue,w.u_opacity)}),fillExtrusionPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_height_factor:new a.aI(ue,w.u_height_factor),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade),u_opacity:new a.aI(ue,w.u_opacity)}),fill:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),fillPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),fillOutline:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world)}),fillOutlinePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),circle:(ue,w)=>({u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_scale_with_map:new a.aH(ue,w.u_scale_with_map),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_extrude_scale:new a.aO(ue,w.u_extrude_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_matrix:new a.aJ(ue,w.u_matrix)}),collisionBox:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_pixel_extrude_scale:new a.aO(ue,w.u_pixel_extrude_scale)}),collisionCircle:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_inv_matrix:new a.aJ(ue,w.u_inv_matrix),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_viewport_size:new a.aO(ue,w.u_viewport_size)}),debug:(ue,w)=>({u_color:new a.aL(ue,w.u_color),u_matrix:new a.aJ(ue,w.u_matrix),u_overlay:new a.aH(ue,w.u_overlay),u_overlay_scale:new a.aI(ue,w.u_overlay_scale)}),clippingMask:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),heatmap:(ue,w)=>({u_extrude_scale:new a.aI(ue,w.u_extrude_scale),u_intensity:new a.aI(ue,w.u_intensity),u_matrix:new a.aJ(ue,w.u_matrix)}),heatmapTexture:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_color_ramp:new a.aH(ue,w.u_color_ramp),u_opacity:new a.aI(ue,w.u_opacity)}),hillshade:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_latrange:new a.aO(ue,w.u_latrange),u_light:new a.aO(ue,w.u_light),u_shadow:new a.aL(ue,w.u_shadow),u_highlight:new a.aL(ue,w.u_highlight),u_accent:new a.aL(ue,w.u_accent)}),hillshadePrepare:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_dimension:new a.aO(ue,w.u_dimension),u_zoom:new a.aI(ue,w.u_zoom),u_unpack:new a.aK(ue,w.u_unpack)}),line:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels)}),lineGradient:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_image:new a.aH(ue,w.u_image),u_image_height:new a.aI(ue,w.u_image_height)}),linePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texsize:new a.aO(ue,w.u_texsize),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_image:new a.aH(ue,w.u_image),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),lineSDF:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_patternscale_a:new a.aO(ue,w.u_patternscale_a),u_patternscale_b:new a.aO(ue,w.u_patternscale_b),u_sdfgamma:new a.aI(ue,w.u_sdfgamma),u_image:new a.aH(ue,w.u_image),u_tex_y_a:new a.aI(ue,w.u_tex_y_a),u_tex_y_b:new a.aI(ue,w.u_tex_y_b),u_mix:new a.aI(ue,w.u_mix)}),raster:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_tl_parent:new a.aO(ue,w.u_tl_parent),u_scale_parent:new a.aI(ue,w.u_scale_parent),u_buffer_scale:new a.aI(ue,w.u_buffer_scale),u_fade_t:new a.aI(ue,w.u_fade_t),u_opacity:new a.aI(ue,w.u_opacity),u_image0:new a.aH(ue,w.u_image0),u_image1:new a.aH(ue,w.u_image1),u_brightness_low:new a.aI(ue,w.u_brightness_low),u_brightness_high:new a.aI(ue,w.u_brightness_high),u_saturation_factor:new a.aI(ue,w.u_saturation_factor),u_contrast_factor:new a.aI(ue,w.u_contrast_factor),u_spin_weights:new a.aN(ue,w.u_spin_weights)}),symbolIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolSDF:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolTextAndIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texsize_icon:new a.aO(ue,w.u_texsize_icon),u_texture:new a.aH(ue,w.u_texture),u_texture_icon:new a.aH(ue,w.u_texture_icon),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),background:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_color:new a.aL(ue,w.u_color)}),backgroundPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_image:new a.aH(ue,w.u_image),u_pattern_tl_a:new a.aO(ue,w.u_pattern_tl_a),u_pattern_br_a:new a.aO(ue,w.u_pattern_br_a),u_pattern_tl_b:new a.aO(ue,w.u_pattern_tl_b),u_pattern_br_b:new a.aO(ue,w.u_pattern_br_b),u_texsize:new a.aO(ue,w.u_texsize),u_mix:new a.aI(ue,w.u_mix),u_pattern_size_a:new a.aO(ue,w.u_pattern_size_a),u_pattern_size_b:new a.aO(ue,w.u_pattern_size_b),u_scale_a:new a.aI(ue,w.u_scale_a),u_scale_b:new a.aI(ue,w.u_scale_b),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_tile_units_to_pixels:new a.aI(ue,w.u_tile_units_to_pixels)}),terrain:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_ele_delta:new a.aI(ue,w.u_ele_delta),u_fog_matrix:new a.aJ(ue,w.u_fog_matrix),u_fog_color:new a.aL(ue,w.u_fog_color),u_fog_ground_blend:new a.aI(ue,w.u_fog_ground_blend),u_fog_ground_blend_opacity:new a.aI(ue,w.u_fog_ground_blend_opacity),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon_fog_blend:new a.aI(ue,w.u_horizon_fog_blend)}),terrainDepth:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),terrainCoords:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_terrain_coords_id:new a.aI(ue,w.u_terrain_coords_id),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),sky:(ue,w)=>({u_sky_color:new a.aL(ue,w.u_sky_color),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon:new a.aI(ue,w.u_horizon),u_sky_horizon_blend:new a.aI(ue,w.u_sky_horizon_blend)})};class bs{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 Rn={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class _a{constructor(w,B,Q,ee){this.length=B.length,this.attributes=Q,this.itemSize=B.bytesPerElement,this.dynamicDraw=ee,this.context=w;let le=w.gl;this.buffer=le.createBuffer(),w.bindVertexBuffer.set(this.buffer),le.bufferData(le.ARRAY_BUFFER,B.arrayBuffer,this.dynamicDraw?le.DYNAMIC_DRAW:le.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 Ht=a.H();a.aQ(Ht,We.placementInvProjMatrix,ue.transform.glCoordMatrix),a.aQ(Ht,Ht,We.placementViewportMatrix),ot.push({circleArray:Ft,circleOffset:Yt,transform:et.posMatrix,invTransform:Ht,coord:et}),Tt+=Ft.length/4,Yt=Tt}it&&Xe.draw(le,qe.LINES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,{u_matrix:et.posMatrix,u_pixel_extrude_scale:[1/(Kt=ue.transform).width,1/Kt.height]},ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et),B.id,it.layoutVertexBuffer,it.indexBuffer,it.segments,null,ue.transform.zoom,null,null,it.collisionVertexBuffer)}var Kt;if(!ee||!ot.length)return;let xr=ue.useProgram(\"collisionCircle\"),Ir=new a.aR;Ir.resize(4*Tt),Ir._trim();let ve=0;for(let Be of ot)for(let et=0;et=0&&(Be[We.associatedIconIndex]={shiftedAnchor:Kn,angle:Ta})}else pi(We.numGlyphs,be)}if(Tt){De.clear();let et=ue.icon.placedSymbolArray;for(let We=0;Weue.style.map.terrain.getElevation(Wr,nt,jt):null,kt=B.layout.get(\"text-rotation-alignment\")===\"map\";je(Pi,Wr.posMatrix,ue,ee,Ul,au,Be,Tt,kt,be,Wr.toUnwrapped(),ve.width,ve.height,Js,Ye)}let Tl=Wr.posMatrix,Al=ee&&dr||dc,X=et||Al?bl:Ul,se=Lu,Te=Cn&&B.paint.get(ee?\"text-halo-width\":\"icon-halo-width\").constantOr(1)!==0,Ne;Ne=Cn?Pi.iconsInText?ls(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,Qa,Ts,Or):Io(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,!0,Or):zs(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,Or);let He={program:fa,buffers:cn,uniformValues:Ne,atlasTexture:mo,atlasTextureIcon:wo,atlasInterpolation:Bo,atlasInterpolationIcon:Ps,isSDF:Cn,hasHalo:Te};if(Ft&&Pi.canOverlap){Ht=!0;let Ye=cn.segments.get();for(let kt of Ye)Sr.push({segments:new a.a0([kt]),sortKey:kt.sortKey,state:He,terrainData:Co})}else Sr.push({segments:cn.segments,sortKey:0,state:He,terrainData:Co})}Ht&&Sr.sort((Wr,ni)=>Wr.sortKey-ni.sortKey);for(let Wr of Sr){let ni=Wr.state;if(xr.activeTexture.set(Ir.TEXTURE0),ni.atlasTexture.bind(ni.atlasInterpolation,Ir.CLAMP_TO_EDGE),ni.atlasTextureIcon&&(xr.activeTexture.set(Ir.TEXTURE1),ni.atlasTextureIcon&&ni.atlasTextureIcon.bind(ni.atlasInterpolationIcon,Ir.CLAMP_TO_EDGE)),ni.isSDF){let Pi=ni.uniformValues;ni.hasHalo&&(Pi.u_is_halo=1,Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,Pi,Wr.terrainData)),Pi.u_is_halo=0}Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,ni.uniformValues,Wr.terrainData)}}function Qf(ue,w,B,Q,ee,le,qe,Xe,ot,Tt){let Yt=Q.context;ee.draw(Yt,Yt.gl.TRIANGLES,le,qe,Xe,Pa.disabled,ot,Tt,B.id,ue.layoutVertexBuffer,ue.indexBuffer,w,B.paint,Q.transform.zoom,ue.programConfigurations.get(B.id),ue.dynamicLayoutVertexBuffer,ue.opacityVertexBuffer)}function _f(ue,w,B,Q){let ee=ue.context,le=ee.gl,qe=Yo.disabled,Xe=new qs([le.ONE,le.ONE],a.aM.transparent,[!0,!0,!0,!0]),ot=w.getBucket(B);if(!ot)return;let Tt=Q.key,Yt=B.heatmapFbos.get(Tt);Yt||(Yt=eh(ee,w.tileSize,w.tileSize),B.heatmapFbos.set(Tt,Yt)),ee.bindFramebuffer.set(Yt.framebuffer),ee.viewport.set([0,0,w.tileSize,w.tileSize]),ee.clear({color:a.aM.transparent});let Kt=ot.programConfigurations.get(B.id),xr=ue.useProgram(\"heatmap\",Kt),Ir=ue.style.map.terrain.getTerrainData(Q);xr.draw(ee,le.TRIANGLES,Po.disabled,qe,Xe,Pa.disabled,ko(Q.posMatrix,w,ue.transform.zoom,B.paint.get(\"heatmap-intensity\")),Ir,B.id,ot.layoutVertexBuffer,ot.indexBuffer,ot.segments,B.paint,ue.transform.zoom,Kt)}function Yc(ue,w,B){let Q=ue.context,ee=Q.gl;Q.setColorMode(ue.colorModeForRenderPass());let le=th(Q,w),qe=B.key,Xe=w.heatmapFbos.get(qe);Xe&&(Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Xe.colorAttachment.get()),Q.activeTexture.set(ee.TEXTURE1),le.bind(ee.LINEAR,ee.CLAMP_TO_EDGE),ue.useProgram(\"heatmapTexture\").draw(Q,ee.TRIANGLES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,Ds(ue,w,0,1),null,w.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments,w.paint,ue.transform.zoom),Xe.destroy(),w.heatmapFbos.delete(qe))}function eh(ue,w,B){var Q,ee;let le=ue.gl,qe=le.createTexture();le.bindTexture(le.TEXTURE_2D,qe),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_S,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_T,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MIN_FILTER,le.LINEAR),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MAG_FILTER,le.LINEAR);let Xe=(Q=ue.HALF_FLOAT)!==null&&Q!==void 0?Q:le.UNSIGNED_BYTE,ot=(ee=ue.RGBA16F)!==null&&ee!==void 0?ee:le.RGBA;le.texImage2D(le.TEXTURE_2D,0,ot,w,B,0,le.RGBA,Xe,null);let Tt=ue.createFramebuffer(w,B,!1,!1);return Tt.colorAttachment.set(qe),Tt}function th(ue,w){return w.colorRampTexture||(w.colorRampTexture=new g(ue,w.colorRamp,ue.gl.RGBA)),w.colorRampTexture}function ju(ue,w,B,Q,ee){if(!B||!Q||!Q.imageAtlas)return;let le=Q.imageAtlas.patternPositions,qe=le[B.to.toString()],Xe=le[B.from.toString()];if(!qe&&Xe&&(qe=Xe),!Xe&&qe&&(Xe=qe),!qe||!Xe){let ot=ee.getPaintProperty(w);qe=le[ot],Xe=le[ot]}qe&&Xe&&ue.setConstantPatternPositions(qe,Xe)}function Hf(ue,w,B,Q,ee,le,qe){let Xe=ue.context.gl,ot=\"fill-pattern\",Tt=B.paint.get(ot),Yt=Tt&&Tt.constantOr(1),Kt=B.getCrossfadeParameters(),xr,Ir,ve,be,De;qe?(Ir=Yt&&!B.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",xr=Xe.LINES):(Ir=Yt?\"fillPattern\":\"fill\",xr=Xe.TRIANGLES);let Be=Tt.constantOr(null);for(let et of Q){let We=w.getTile(et);if(Yt&&!We.patternsLoaded())continue;let it=We.getBucket(B);if(!it)continue;let Ft=it.programConfigurations.get(B.id),Ht=ue.useProgram(Ir,Ft),tr=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et);Yt&&(ue.context.activeTexture.set(Xe.TEXTURE0),We.imageAtlasTexture.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),Ft.updatePaintBuffers(Kt)),ju(Ft,ot,Be,We,B);let dr=tr?et:null,Sr=ue.translatePosMatrix(dr?dr.posMatrix:et.posMatrix,We,B.paint.get(\"fill-translate\"),B.paint.get(\"fill-translate-anchor\"));if(qe){be=it.indexBuffer2,De=it.segments2;let Or=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];ve=Ir===\"fillOutlinePattern\"&&Yt?Ma(Sr,ue,Kt,We,Or):Jn(Sr,Or)}else be=it.indexBuffer,De=it.segments,ve=Yt?ya(Sr,ue,Kt,We):_n(Sr);Ht.draw(ue.context,xr,ee,ue.stencilModeForClipping(et),le,Pa.disabled,ve,tr,B.id,it.layoutVertexBuffer,be,De,B.paint,ue.transform.zoom,Ft)}}function cc(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=\"fill-extrusion-pattern\",Yt=B.paint.get(Tt),Kt=Yt.constantOr(1),xr=B.getCrossfadeParameters(),Ir=B.paint.get(\"fill-extrusion-opacity\"),ve=Yt.constantOr(null);for(let be of Q){let De=w.getTile(be),Be=De.getBucket(B);if(!Be)continue;let et=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(be),We=Be.programConfigurations.get(B.id),it=ue.useProgram(Kt?\"fillExtrusionPattern\":\"fillExtrusion\",We);Kt&&(ue.context.activeTexture.set(ot.TEXTURE0),De.imageAtlasTexture.bind(ot.LINEAR,ot.CLAMP_TO_EDGE),We.updatePaintBuffers(xr)),ju(We,Tt,ve,De,B);let Ft=ue.translatePosMatrix(be.posMatrix,De,B.paint.get(\"fill-extrusion-translate\"),B.paint.get(\"fill-extrusion-translate-anchor\")),Ht=B.paint.get(\"fill-extrusion-vertical-gradient\"),tr=Kt?Li(Ft,ue,Ht,Ir,be,xr,De):Mn(Ft,ue,Ht,Ir);it.draw(Xe,Xe.gl.TRIANGLES,ee,le,qe,Pa.backCCW,tr,et,B.id,Be.layoutVertexBuffer,Be.indexBuffer,Be.segments,B.paint,ue.transform.zoom,We,ue.style.map.terrain&&Be.centroidVertexBuffer)}}function of(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=B.fbo;if(!Tt)return;let Yt=ue.useProgram(\"hillshade\"),Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(w);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,Tt.colorAttachment.get()),Yt.draw(Xe,ot.TRIANGLES,ee,le,qe,Pa.disabled,((xr,Ir,ve,be)=>{let De=ve.paint.get(\"hillshade-shadow-color\"),Be=ve.paint.get(\"hillshade-highlight-color\"),et=ve.paint.get(\"hillshade-accent-color\"),We=ve.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);ve.paint.get(\"hillshade-illumination-anchor\")===\"viewport\"&&(We-=xr.transform.angle);let it=!xr.options.moving;return{u_matrix:be?be.posMatrix:xr.transform.calculatePosMatrix(Ir.tileID.toUnwrapped(),it),u_image:0,u_latrange:Fs(0,Ir.tileID),u_light:[ve.paint.get(\"hillshade-exaggeration\"),We],u_shadow:De,u_highlight:Be,u_accent:et}})(ue,B,Q,Kt?w:null),Kt,Q.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments)}function Nl(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl,ot=w.dem;if(ot&&ot.data){let Tt=ot.dim,Yt=ot.stride,Kt=ot.getPixels();if(qe.activeTexture.set(Xe.TEXTURE1),qe.pixelStoreUnpackPremultiplyAlpha.set(!1),w.demTexture=w.demTexture||ue.getTileTexture(Yt),w.demTexture){let Ir=w.demTexture;Ir.update(Kt,{premultiply:!1}),Ir.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE)}else w.demTexture=new g(qe,Kt,Xe.RGBA,{premultiply:!1}),w.demTexture.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE);qe.activeTexture.set(Xe.TEXTURE0);let xr=w.fbo;if(!xr){let Ir=new g(qe,{width:Tt,height:Tt,data:null},Xe.RGBA);Ir.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),xr=w.fbo=qe.createFramebuffer(Tt,Tt,!0,!1),xr.colorAttachment.set(Ir.texture)}qe.bindFramebuffer.set(xr.framebuffer),qe.viewport.set([0,0,Tt,Tt]),ue.useProgram(\"hillshadePrepare\").draw(qe,Xe.TRIANGLES,Q,ee,le,Pa.disabled,((Ir,ve)=>{let be=ve.stride,De=a.H();return a.aP(De,0,a.X,-a.X,0,0,1),a.J(De,De,[0,-a.X,0]),{u_matrix:De,u_image:1,u_dimension:[be,be],u_zoom:Ir.overscaledZ,u_unpack:ve.getUnpackVector()}})(w.tileID,ot),null,B.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments),w.needsHillshadePrepare=!1}}function Kc(ue,w,B,Q,ee,le){let qe=Q.paint.get(\"raster-fade-duration\");if(!le&&qe>0){let Xe=u.now(),ot=(Xe-ue.timeAdded)/qe,Tt=w?(Xe-w.timeAdded)/qe:-1,Yt=B.getSource(),Kt=ee.coveringZoomLevel({tileSize:Yt.tileSize,roundZoom:Yt.roundZoom}),xr=!w||Math.abs(w.tileID.overscaledZ-Kt)>Math.abs(ue.tileID.overscaledZ-Kt),Ir=xr&&ue.refreshedUponExpiration?1:a.ac(xr?ot:1-Tt,0,1);return ue.refreshedUponExpiration&&ot>=1&&(ue.refreshedUponExpiration=!1),w?{opacity:1,mix:1-Ir}:{opacity:Ir,mix:0}}return{opacity:1,mix:0}}let Rc=new a.aM(1,0,0,1),gs=new a.aM(0,1,0,1),jf=new a.aM(0,0,1,1),Gh=new a.aM(1,0,1,1),rh=new a.aM(0,1,1,1);function sf(ue,w,B,Q){Mu(ue,0,w+B/2,ue.transform.width,B,Q)}function Th(ue,w,B,Q){Mu(ue,w-B/2,0,B,ue.transform.height,Q)}function Mu(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl;Xe.enable(Xe.SCISSOR_TEST),Xe.scissor(w*ue.pixelRatio,B*ue.pixelRatio,Q*ue.pixelRatio,ee*ue.pixelRatio),qe.clear({color:le}),Xe.disable(Xe.SCISSOR_TEST)}function ih(ue,w,B){let Q=ue.context,ee=Q.gl,le=B.posMatrix,qe=ue.useProgram(\"debug\"),Xe=Po.disabled,ot=Yo.disabled,Tt=ue.colorModeForRenderPass(),Yt=\"$debug\",Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(B);Q.activeTexture.set(ee.TEXTURE0);let xr=w.getTileByID(B.key).latestRawTileData,Ir=Math.floor((xr&&xr.byteLength||0)/1024),ve=w.getTile(B).tileSize,be=512/Math.min(ve,512)*(B.overscaledZ/ue.transform.zoom)*.5,De=B.canonical.toString();B.overscaledZ!==B.canonical.z&&(De+=` => ${B.overscaledZ}`),function(Be,et){Be.initDebugOverlayCanvas();let We=Be.debugOverlayCanvas,it=Be.context.gl,Ft=Be.debugOverlayCanvas.getContext(\"2d\");Ft.clearRect(0,0,We.width,We.height),Ft.shadowColor=\"white\",Ft.shadowBlur=2,Ft.lineWidth=1.5,Ft.strokeStyle=\"white\",Ft.textBaseline=\"top\",Ft.font=\"bold 36px Open Sans, sans-serif\",Ft.fillText(et,5,5),Ft.strokeText(et,5,5),Be.debugOverlayTexture.update(We),Be.debugOverlayTexture.bind(it.LINEAR,it.CLAMP_TO_EDGE)}(ue,`${De} ${Ir}kB`),qe.draw(Q,ee.TRIANGLES,Xe,ot,qs.alphaBlended,Pa.disabled,po(le,a.aM.transparent,be),null,Yt,ue.debugBuffer,ue.quadTriangleIndexBuffer,ue.debugSegments),qe.draw(Q,ee.LINE_STRIP,Xe,ot,Tt,Pa.disabled,po(le,a.aM.red),Kt,Yt,ue.debugBuffer,ue.tileBorderIndexBuffer,ue.debugSegments)}function js(ue,w,B){let Q=ue.context,ee=Q.gl,le=ue.colorModeForRenderPass(),qe=new Po(ee.LEQUAL,Po.ReadWrite,ue.depthRangeFor3D),Xe=ue.useProgram(\"terrain\"),ot=w.getTerrainMesh();Q.bindFramebuffer.set(null),Q.viewport.set([0,0,ue.width,ue.height]);for(let Tt of B){let Yt=ue.renderToTexture.getTexture(Tt),Kt=w.getTerrainData(Tt.tileID);Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Yt.texture);let xr=ue.transform.calculatePosMatrix(Tt.tileID.toUnwrapped()),Ir=w.getMeshFrameDelta(ue.transform.zoom),ve=ue.transform.calculateFogMatrix(Tt.tileID.toUnwrapped()),be=Jr(xr,Ir,ve,ue.style.sky,ue.transform.pitch);Xe.draw(Q,ee.TRIANGLES,qe,Yo.disabled,le,Pa.backCCW,be,Kt,\"terrain\",ot.vertexBuffer,ot.indexBuffer,ot.segments)}}class Eu{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 Dc{constructor(w,B){this.context=new ad(w),this.transform=B,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:a.an(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=mt.maxUnderzooming+mt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Wo}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,vo.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,vo.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,lt.members),this.rasterBoundsSegments=a.a0.simpleSegment(0,0,4,2);let le=new a.aX;le.emplaceBack(0,0),le.emplaceBack(1,0),le.emplaceBack(0,1),le.emplaceBack(1,1),this.viewportBuffer=w.createVertexBuffer(le,vo.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 Xe=new a.aY;Xe.emplaceBack(0,1,2),Xe.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=w.createIndexBuffer(Xe);let ot=this.context.gl;this.stencilClearMode=new Yo({func:ot.ALWAYS,mask:0},0,255,ot.ZERO,ot.ZERO,ot.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,Po.disabled,this.stencilClearMode,qs.disabled,Pa.disabled,Lo(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(qs.disabled),Q.setDepthMode(Po.disabled);let le=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(let qe of B){let Xe=this._tileClippingMaskIDs[qe.key]=this.nextStencilID++,ot=this.style.map.terrain&&this.style.map.terrain.getTerrainData(qe);le.draw(Q,ee.TRIANGLES,Po.disabled,new Yo({func:ee.ALWAYS,mask:0},Xe,255,ee.KEEP,ee.KEEP,ee.REPLACE),qs.disabled,Pa.disabled,Lo(qe.posMatrix),ot,\"$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 Yo({func:B.NOTEQUAL,mask:255},w,255,B.KEEP,B.KEEP,B.REPLACE)}stencilModeForClipping(w){let B=this.context.gl;return new Yo({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,Xe)=>Xe.overscaledZ-qe.overscaledZ),ee=Q[Q.length-1].overscaledZ,le=Q[0].overscaledZ-ee+1;if(le>1){this.currentStencilSource=void 0,this.nextStencilID+le>256&&this.clearStencil();let qe={};for(let Xe=0;Xe({u_sky_color:Be.properties.get(\"sky-color\"),u_horizon_color:Be.properties.get(\"horizon-color\"),u_horizon:(et.height/2+et.getHorizon())*We,u_sky_horizon_blend:Be.properties.get(\"sky-horizon-blend\")*et.height/2*We}))(Tt,ot.style.map.transform,ot.pixelRatio),Ir=new Po(Kt.LEQUAL,Po.ReadWrite,[0,1]),ve=Yo.disabled,be=ot.colorModeForRenderPass(),De=ot.useProgram(\"sky\");if(!Tt.mesh){let Be=new a.aX;Be.emplaceBack(-1,-1),Be.emplaceBack(1,-1),Be.emplaceBack(1,1),Be.emplaceBack(-1,1);let et=new a.aY;et.emplaceBack(0,1,2),et.emplaceBack(0,2,3),Tt.mesh=new Eu(Yt.createVertexBuffer(Be,vo.members),Yt.createIndexBuffer(et),a.a0.simpleSegment(0,0,Be.length,et.length))}De.draw(Yt,Kt.TRIANGLES,Ir,ve,be,Pa.disabled,xr,void 0,\"sky\",Tt.mesh.vertexBuffer,Tt.mesh.indexBuffer,Tt.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 ot=this.style._layers[Q[this.currentLayer]],Tt=ee[ot.source],Yt=le[ot.source];this._renderTileClippingMasks(ot,Yt),this.renderLayer(this,Tt,ot,Yt)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayerDe.source&&!De.isHidden(Yt)?[Tt.sourceCaches[De.source]]:[]),Ir=xr.filter(De=>De.getSource().type===\"vector\"),ve=xr.filter(De=>De.getSource().type!==\"vector\"),be=De=>{(!Kt||Kt.getSource().maxzoombe(De)),Kt||ve.forEach(De=>be(De)),Kt}(this.style,this.transform.zoom);ot&&function(Tt,Yt,Kt){for(let xr=0;xr0),ee&&(a.b0(B,Q),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.sourceCache.getRenderableTiles(),Ir=le.useProgram(\"terrainDepth\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"depth\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1});for(let ve of xr){let be=qe.getTerrainData(ve.tileID),De={u_matrix:le.transform.calculatePosMatrix(ve.tileID.toUnwrapped()),u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};Ir.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,De,be,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.height])}(this,this.style.map.terrain),function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.getCoordsTexture(),Ir=qe.sourceCache.getRenderableTiles(),ve=le.useProgram(\"terrainCoords\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"coords\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1}),qe.coordsIndex=[];for(let be of Ir){let De=qe.getTerrainData(be.tileID);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,xr.texture);let Be={u_matrix:le.transform.calculatePosMatrix(be.tileID.toUnwrapped()),u_terrain_coords_id:(255-qe.coordsIndex.length)/255,u_texture:0,u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};ve.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,Be,De,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments),qe.coordsIndex.push(be.tileID.key)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.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(le,qe,Xe,ot,Tt){if(le.renderPass!==\"translucent\")return;let Yt=Yo.disabled,Kt=le.colorModeForRenderPass();(Xe._unevaluatedLayout.hasValue(\"text-variable-anchor\")||Xe._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"))&&function(xr,Ir,ve,be,De,Be,et,We,it){let Ft=Ir.transform,Ht=yn(),tr=De===\"map\",dr=Be===\"map\";for(let Sr of xr){let Or=be.getTile(Sr),Wr=Or.getBucket(ve);if(!Wr||!Wr.text||!Wr.text.segments.get().length)continue;let ni=a.ag(Wr.textSizeData,Ft.zoom),Pi=In(Or,1,Ir.transform.zoom),cn=Br(Sr.posMatrix,dr,tr,Ir.transform,Pi),ln=ve.layout.get(\"icon-text-fit\")!==\"none\"&&Wr.hasIconData();if(ni){let Cn=Math.pow(2,Ft.zoom-Or.tileID.overscaledZ),Kn=Ir.style.map.terrain?(fa,$a)=>Ir.style.map.terrain.getElevation(Sr,fa,$a):null,Ta=Ht.translatePosition(Ft,Or,et,We);yf(Wr,tr,dr,it,Ft,cn,Sr.posMatrix,Cn,ni,ln,Ht,Ta,Sr.toUnwrapped(),Kn)}}}(ot,le,Xe,qe,Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Tt),Xe.paint.get(\"icon-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!1,Xe.paint.get(\"icon-translate\"),Xe.paint.get(\"icon-translate-anchor\"),Xe.layout.get(\"icon-rotation-alignment\"),Xe.layout.get(\"icon-pitch-alignment\"),Xe.layout.get(\"icon-keep-upright\"),Yt,Kt),Xe.paint.get(\"text-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!0,Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.layout.get(\"text-keep-upright\"),Yt,Kt),qe.map.showCollisionBoxes&&(Hu(le,qe,Xe,ot,!0),Hu(le,qe,Xe,ot,!1))})(w,B,Q,ee,this.style.placement.variableOffsets);break;case\"circle\":(function(le,qe,Xe,ot){if(le.renderPass!==\"translucent\")return;let Tt=Xe.paint.get(\"circle-opacity\"),Yt=Xe.paint.get(\"circle-stroke-width\"),Kt=Xe.paint.get(\"circle-stroke-opacity\"),xr=!Xe.layout.get(\"circle-sort-key\").isConstant();if(Tt.constantOr(1)===0&&(Yt.constantOr(1)===0||Kt.constantOr(1)===0))return;let Ir=le.context,ve=Ir.gl,be=le.depthModeForSublayer(0,Po.ReadOnly),De=Yo.disabled,Be=le.colorModeForRenderPass(),et=[];for(let We=0;WeWe.sortKey-it.sortKey);for(let We of et){let{programConfiguration:it,program:Ft,layoutVertexBuffer:Ht,indexBuffer:tr,uniformValues:dr,terrainData:Sr}=We.state;Ft.draw(Ir,ve.TRIANGLES,be,De,Be,Pa.disabled,dr,Sr,Xe.id,Ht,tr,We.segments,Xe.paint,le.transform.zoom,it)}})(w,B,Q,ee);break;case\"heatmap\":(function(le,qe,Xe,ot){if(Xe.paint.get(\"heatmap-opacity\")===0)return;let Tt=le.context;if(le.style.map.terrain){for(let Yt of ot){let Kt=qe.getTile(Yt);qe.hasRenderableParent(Yt)||(le.renderPass===\"offscreen\"?_f(le,Kt,Xe,Yt):le.renderPass===\"translucent\"&&Yc(le,Xe,Yt))}Tt.viewport.set([0,0,le.width,le.height])}else le.renderPass===\"offscreen\"?function(Yt,Kt,xr,Ir){let ve=Yt.context,be=ve.gl,De=Yo.disabled,Be=new qs([be.ONE,be.ONE],a.aM.transparent,[!0,!0,!0,!0]);(function(et,We,it){let Ft=et.gl;et.activeTexture.set(Ft.TEXTURE1),et.viewport.set([0,0,We.width/4,We.height/4]);let Ht=it.heatmapFbos.get(a.aU);Ht?(Ft.bindTexture(Ft.TEXTURE_2D,Ht.colorAttachment.get()),et.bindFramebuffer.set(Ht.framebuffer)):(Ht=eh(et,We.width/4,We.height/4),it.heatmapFbos.set(a.aU,Ht))})(ve,Yt,xr),ve.clear({color:a.aM.transparent});for(let et=0;et20&&Yt.texParameterf(Yt.TEXTURE_2D,Tt.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,Tt.extTextureFilterAnisotropicMax);let Wr=le.style.map.terrain&&le.style.map.terrain.getTerrainData(et),ni=Wr?et:null,Pi=ni?ni.posMatrix:le.transform.calculatePosMatrix(et.toUnwrapped(),Be),cn=cl(Pi,Sr||[0,0],dr||1,tr,Xe);Kt instanceof Gt?xr.draw(Tt,Yt.TRIANGLES,We,Yo.disabled,Ir,Pa.disabled,cn,Wr,Xe.id,Kt.boundsBuffer,le.quadTriangleIndexBuffer,Kt.boundsSegments):xr.draw(Tt,Yt.TRIANGLES,We,ve[et.overscaledZ],Ir,Pa.disabled,cn,Wr,Xe.id,le.rasterBoundsBuffer,le.quadTriangleIndexBuffer,le.rasterBoundsSegments)}})(w,B,Q,ee);break;case\"background\":(function(le,qe,Xe,ot){let Tt=Xe.paint.get(\"background-color\"),Yt=Xe.paint.get(\"background-opacity\");if(Yt===0)return;let Kt=le.context,xr=Kt.gl,Ir=le.transform,ve=Ir.tileSize,be=Xe.paint.get(\"background-pattern\");if(le.isPatternMissing(be))return;let De=!be&&Tt.a===1&&Yt===1&&le.opaquePassEnabledForLayer()?\"opaque\":\"translucent\";if(le.renderPass!==De)return;let Be=Yo.disabled,et=le.depthModeForSublayer(0,De===\"opaque\"?Po.ReadWrite:Po.ReadOnly),We=le.colorModeForRenderPass(),it=le.useProgram(be?\"backgroundPattern\":\"background\"),Ft=ot||Ir.coveringTiles({tileSize:ve,terrain:le.style.map.terrain});be&&(Kt.activeTexture.set(xr.TEXTURE0),le.imageManager.bind(le.context));let Ht=Xe.getCrossfadeParameters();for(let tr of Ft){let dr=ot?tr.posMatrix:le.transform.calculatePosMatrix(tr.toUnwrapped()),Sr=be?Su(dr,Yt,le,be,{tileID:tr,tileSize:ve},Ht):Zl(dr,Yt,Tt),Or=le.style.map.terrain&&le.style.map.terrain.getTerrainData(tr);it.draw(Kt,xr.TRIANGLES,et,Be,We,Pa.disabled,Sr,Or,Xe.id,le.tileExtentBuffer,le.quadTriangleIndexBuffer,le.tileExtentSegments)}})(w,0,Q,ee);break;case\"custom\":(function(le,qe,Xe){let ot=le.context,Tt=Xe.implementation;if(le.renderPass===\"offscreen\"){let Yt=Tt.prerender;Yt&&(le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),Yt.call(Tt,ot.gl,le.transform.customLayerMatrix()),ot.setDirty(),le.setBaseState())}else if(le.renderPass===\"translucent\"){le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),ot.setStencilMode(Yo.disabled);let Yt=Tt.renderingMode===\"3d\"?new Po(le.context.gl.LEQUAL,Po.ReadWrite,le.depthRangeFor3D):le.depthModeForSublayer(0,Po.ReadOnly);ot.setDepthMode(Yt),Tt.render(ot.gl,le.transform.customLayerMatrix(),{farZ:le.transform.farZ,nearZ:le.transform.nearZ,fov:le.transform._fov,modelViewProjectionMatrix:le.transform.modelViewProjectionMatrix,projectionMatrix:le.transform.projectionMatrix}),ot.setDirty(),le.setBaseState(),ot.bindFramebuffer.set(null)}})(w,0,Q)}}translatePosMatrix(w,B,Q,ee,le){if(!Q[0]&&!Q[1])return w;let qe=le?ee===\"map\"?this.transform.angle:0:ee===\"viewport\"?-this.transform.angle:0;if(qe){let Tt=Math.sin(qe),Yt=Math.cos(qe);Q=[Q[0]*Yt-Q[1]*Tt,Q[0]*Tt+Q[1]*Yt]}let Xe=[le?Q[0]:In(B,Q[0],this.transform.zoom),le?Q[1]:In(B,Q[1],this.transform.zoom),0],ot=new Float32Array(16);return a.J(ot,w,Xe),ot}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 hn(this.context,jn[w],B,nc[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 g(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 ks{constructor(w,B){this.points=w,this.planes=B}static fromInvProjectionMatrix(w,B,Q){let ee=Math.pow(2,Q),le=[[-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(Xe=>{let ot=1/(Xe=a.af([],Xe,w))[3]/B*ee;return a.b1(Xe,Xe,[ot,ot,1/Xe[3],ot])}),qe=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(Xe=>{let ot=function(xr,Ir){var ve=Ir[0],be=Ir[1],De=Ir[2],Be=ve*ve+be*be+De*De;return Be>0&&(Be=1/Math.sqrt(Be)),xr[0]=Ir[0]*Be,xr[1]=Ir[1]*Be,xr[2]=Ir[2]*Be,xr}([],function(xr,Ir,ve){var be=Ir[0],De=Ir[1],Be=Ir[2],et=ve[0],We=ve[1],it=ve[2];return xr[0]=De*it-Be*We,xr[1]=Be*et-be*it,xr[2]=be*We-De*et,xr}([],L([],le[Xe[0]],le[Xe[1]]),L([],le[Xe[2]],le[Xe[1]]))),Tt=-((Yt=ot)[0]*(Kt=le[Xe[1]])[0]+Yt[1]*Kt[1]+Yt[2]*Kt[2]);var Yt,Kt;return ot.concat(Tt)});return new ks(le,qe)}}class bc{constructor(w,B){this.min=w,this.max=B,this.center=function(Q,ee,le){return Q[0]=.5*ee[0],Q[1]=.5*ee[1],Q[2]=.5*ee[2],Q}([],function(Q,ee,le){return Q[0]=ee[0]+le[0],Q[1]=ee[1]+le[1],Q[2]=ee[2]+le[2],Q}([],this.min,this.max))}quadrant(w){let B=[w%2==0,w<2],Q=E(this.min),ee=E(this.max);for(let le=0;le=0&&qe++;if(qe===0)return 0;qe!==B.length&&(Q=!1)}if(Q)return 2;for(let ee=0;ee<3;ee++){let le=Number.MAX_VALUE,qe=-Number.MAX_VALUE;for(let Xe=0;Xethis.max[ee]-this.min[ee])return 0}return 1}}class hu{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 hu(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}let _u=85.051129;class nl{constructor(w,B,Q,ee,le){this.tileSize=512,this._renderWorldCopies=le===void 0||!!le,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 hu,this._posMatrixCache={},this._alignedPosMatrixCache={},this._fogMatrixCache={},this.minElevationForCurrentTile=0}clone(){let w=new nl(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,le){var qe=ee[0],Xe=ee[1],ot=ee[2],Tt=ee[3],Yt=Math.sin(le),Kt=Math.cos(le);Q[0]=qe*Kt+ot*Yt,Q[1]=Xe*Kt+Tt*Yt,Q[2]=qe*-Yt+ot*Kt,Q[3]=Xe*-Yt+Tt*Kt}(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)),le=this.pointCoordinate(new a.P(this.width,this.height)),qe=this.pointCoordinate(new a.P(0,this.height)),Xe=Math.floor(Math.min(Q.x,ee.x,le.x,qe.x)),ot=Math.floor(Math.max(Q.x,ee.x,le.x,qe.x)),Tt=1;for(let Yt=Xe-Tt;Yt<=ot+Tt;Yt++)Yt!==0&&B.push(new a.b4(Yt,w))}return B}coveringTiles(w){var B,Q;let ee=this.coveringZoomLevel(w),le=ee;if(w.minzoom!==void 0&&eew.maxzoom&&(ee=w.maxzoom);let qe=this.pointCoordinate(this.getCameraPoint()),Xe=a.Z.fromLngLat(this.center),ot=Math.pow(2,ee),Tt=[ot*qe.x,ot*qe.y,0],Yt=[ot*Xe.x,ot*Xe.y,0],Kt=ks.fromInvProjectionMatrix(this.invModelViewProjectionMatrix,this.worldSize,ee),xr=w.minzoom||0;!w.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(xr=ee);let Ir=w.terrain?2/Math.min(this.tileSize,w.tileSize)*this.tileSize:3,ve=We=>({aabb:new bc([We*ot,0,0],[(We+1)*ot,ot,0]),zoom:0,x:0,y:0,wrap:We,fullyVisible:!1}),be=[],De=[],Be=ee,et=w.reparseOverscaled?le:ee;if(this._renderWorldCopies)for(let We=1;We<=3;We++)be.push(ve(-We)),be.push(ve(We));for(be.push(ve(0));be.length>0;){let We=be.pop(),it=We.x,Ft=We.y,Ht=We.fullyVisible;if(!Ht){let Wr=We.aabb.intersects(Kt);if(Wr===0)continue;Ht=Wr===2}let tr=w.terrain?Tt:Yt,dr=We.aabb.distanceX(tr),Sr=We.aabb.distanceY(tr),Or=Math.max(Math.abs(dr),Math.abs(Sr));if(We.zoom===Be||Or>Ir+(1<=xr){let Wr=Be-We.zoom,ni=Tt[0]-.5-(it<>1),cn=We.zoom+1,ln=We.aabb.quadrant(Wr);if(w.terrain){let Cn=new a.S(cn,We.wrap,cn,ni,Pi),Kn=w.terrain.getMinMaxElevation(Cn),Ta=(B=Kn.minElevation)!==null&&B!==void 0?B:this.elevation,fa=(Q=Kn.maxElevation)!==null&&Q!==void 0?Q:this.elevation;ln=new bc([ln.min[0],ln.min[1],Ta],[ln.max[0],ln.max[1],fa])}be.push({aabb:ln,zoom:cn,x:ni,y:Pi,wrap:We.wrap,fullyVisible:Ht})}}return De.sort((We,it)=>We.distanceSq-it.distanceSq).map(We=>We.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,_u);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),le=w.getElevationForLngLatZoom(ee,this.tileZoom);if(!(this.elevation-le))return;let qe=Q+B-le,Xe=Math.cos(this._pitch)*this.cameraToCenterDistance/qe/a.b5(1,ee.lat),ot=this.scaleZoom(Xe/this.tileSize);this._elevation=le,this._center=ee,this.zoom=ot}setLocationAtPoint(w,B){let Q=this.pointCoordinate(B),ee=this.pointCoordinate(this.centerPoint),le=this.locationCoordinate(w),qe=new a.Z(le.x-(Q.x-ee.x),le.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 xr=B.pointCoordinate(w);if(xr!=null)return xr}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 le=Q[3],qe=ee[3],Xe=Q[1]/le,ot=ee[1]/qe,Tt=Q[2]/le,Yt=ee[2]/qe,Kt=Tt===Yt?0:(0-Tt)/(Yt-Tt);return new a.Z(a.y.number(Q[0]/le,ee[0]/qe,Kt)/this.worldSize,a.y.number(Xe,ot,Kt)/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,_u])}calculateTileMatrix(w){let B=w.canonical,Q=this.worldSize/this.zoomScale(B.z),ee=B.x+Math.pow(2,B.z)*w.wrap,le=a.an(new Float64Array(16));return a.J(le,le,[ee*Q,B.y*Q,0]),a.K(le,le,[Q/a.X,Q/a.X,1]),le}calculatePosMatrix(w,B=!1){let Q=w.key,ee=B?this._alignedPosMatrixCache:this._posMatrixCache;if(ee[Q])return ee[Q];let le=this.calculateTileMatrix(w);return a.L(le,B?this.alignedModelViewProjectionMatrix:this.modelViewProjectionMatrix,le),ee[Q]=new Float32Array(le),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 We=179.9999999999;ee=[-We,We]}let le=this.tileSize*this.zoomScale(Q.zoom),qe=0,Xe=le,ot=0,Tt=le,Yt=0,Kt=0,{x:xr,y:Ir}=this.size;if(this.latRange){let We=this.latRange;qe=a.Q(We[1])*le,Xe=a.Q(We[0])*le,Xe-qeXe&&(Be=Xe-We)}if(ee){let We=(ot+Tt)/2,it=ve;this._renderWorldCopies&&(it=a.b3(ve,We-le/2,We+le/2));let Ft=xr/2;it-FtTt&&(De=Tt-Ft)}if(De!==void 0||Be!==void 0){let We=new a.P(De!=null?De:ve,Be!=null?Be:be);Q.center=this.unproject.call({worldSize:le},We).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 le=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),qe=Math.min(this.elevation,this.minElevationForCurrentTile),Xe=le-qe*this._pixelPerMeter/Math.cos(this._pitch),ot=qe<0?Xe:le,Tt=Math.PI/2+this._pitch,Yt=this._fov*(.5+w.y/this.height),Kt=Math.sin(Yt)*ot/Math.sin(a.ac(Math.PI-Tt-Yt,.01,Math.PI-.01)),xr=this.getHorizon(),Ir=2*Math.atan(xr/this.cameraToCenterDistance)*(.5+w.y/(2*xr)),ve=Math.sin(Ir)*ot/Math.sin(a.ac(Math.PI-Tt-Ir,.01,Math.PI-.01)),be=Math.min(Kt,ve);this.farZ=1.01*(Math.cos(Math.PI/2-this._pitch)*be+ot),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,le,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 De=this.width%2/2,Be=this.height%2/2,et=Math.cos(this.angle),We=Math.sin(this.angle),it=B-Math.round(B)+et*De+We*Be,Ft=Q-Math.round(Q)+et*Be+We*De,Ht=new Float64Array(ee);if(a.J(Ht,Ht,[it>.5?it-1:it,Ft>.5?Ft-1:Ft,0]),this.alignedModelViewProjectionMatrix=Ht,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,le=B.x,qe=B.y;for(let Xe of w)Q=Math.min(Q,Xe.x),ee=Math.min(ee,Xe.y),le=Math.max(le,Xe.x),qe=Math.max(qe,Xe.y);return[new a.P(Q,ee),new a.P(le,ee),new a.P(le,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 nh(ue,w){let B,Q=!1,ee=null,le=null,qe=()=>{ee=null,Q&&(ue.apply(le,B),ee=setTimeout(qe,w),Q=!1)};return(...Xe)=>(Q=!0,le=this,B=Xe,ee||qe(),ee)}class Ah{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 le=window.location.hash.replace(ee,\"\");le.startsWith(\"#&\")?le=le.slice(0,1)+le.slice(2):le===\"#\"&&(le=\"\");let qe=window.location.href.replace(/(#.+)?$/,le);qe=qe.replace(\"&&\",\"&\"),window.history.replaceState(window.history.state,null,qe)},this._updateHash=nh(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),le=Math.pow(10,ee),qe=Math.round(B.lng*le)/le,Xe=Math.round(B.lat*le)/le,ot=this._map.getBearing(),Tt=this._map.getPitch(),Yt=\"\";if(Yt+=w?`/${qe}/${Xe}/${Q}`:`${Q}/${Xe}/${qe}`,(ot||Tt)&&(Yt+=\"/\"+Math.round(10*ot)/10),Tt&&(Yt+=`/${Math.round(Tt)}`),this._hashName){let Kt=this._hashName,xr=!1,Ir=window.location.hash.slice(1).split(\"&\").map(ve=>{let be=ve.split(\"=\")[0];return be===Kt?(xr=!0,`${be}=${Yt}`):ve}).filter(ve=>ve);return xr||Ir.push(`${Kt}=${Yt}`),`#${Ir.join(\"&\")}`}return`#${Yt}`}}let zu={linearity:.3,easing:a.b8(0,0,.3,1)},Fc=a.e({deceleration:2500,maxSpeed:1400},zu),wc=a.e({deceleration:20,maxSpeed:1400},zu),bd=a.e({deceleration:1e3,maxSpeed:360},zu),xf=a.e({deceleration:1e3,maxSpeed:90},zu);class Pf{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:le}of this._inertiaBuffer)B.zoom+=le.zoomDelta||0,B.bearing+=le.bearingDelta||0,B.pitch+=le.pitchDelta||0,le.panDelta&&B.pan._add(le.panDelta),le.around&&(B.around=le.around),le.pinchAround&&(B.pinchAround=le.pinchAround);let Q=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,ee={};if(B.pan.mag()){let le=bf(B.pan.mag(),Q,a.e({},Fc,w||{}));ee.offset=B.pan.mult(le.amount/B.pan.mag()),ee.center=this._map.transform.center,Ou(ee,le)}if(B.zoom){let le=bf(B.zoom,Q,wc);ee.zoom=this._map.transform.zoom+le.amount,Ou(ee,le)}if(B.bearing){let le=bf(B.bearing,Q,bd);ee.bearing=this._map.transform.bearing+a.ac(le.amount,-179,179),Ou(ee,le)}if(B.pitch){let le=bf(B.pitch,Q,xf);ee.pitch=this._map.transform.pitch+le.amount,Ou(ee,le)}if(ee.zoom||ee.bearing){let le=B.pinchAround===void 0?B.around:B.pinchAround;ee.around=le?this._map.unproject(le):this._map.getCenter()}return this.clear(),a.e(ee,{noMoveStart:!0})}}function Ou(ue,w){(!ue.duration||ue.durationB.unproject(ot)),Xe=le.reduce((ot,Tt,Yt,Kt)=>ot.add(Tt.div(Kt.length)),new a.P(0,0));super(w,{points:le,point:Xe,lngLats:qe,lngLat:B.unproject(Xe),originalEvent:Q}),this._defaultPrevented=!1}}class Hh extends a.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(w,B,Q){super(w,{originalEvent:Q}),this._defaultPrevented=!1}}class If{constructor(w,B){this._map=w,this._clickTolerance=B.clickTolerance}reset(){delete this._mousedownPos}wheel(w){return this._firePreventable(new Hh(w.type,this._map,w))}mousedown(w,B){return this._mousedownPos=B,this._firePreventable(new jl(w.type,this._map,w))}mouseup(w){this._map.fire(new jl(w.type,this._map,w))}click(w,B){this._mousedownPos&&this._mousedownPos.dist(B)>=this._clickTolerance||this._map.fire(new jl(w.type,this._map,w))}dblclick(w){return this._firePreventable(new jl(w.type,this._map,w))}mouseover(w){this._map.fire(new jl(w.type,this._map,w))}mouseout(w){this._map.fire(new jl(w.type,this._map,w))}touchstart(w){return this._firePreventable(new lf(w.type,this._map,w))}touchmove(w){this._map.fire(new lf(w.type,this._map,w))}touchend(w){this._map.fire(new lf(w.type,this._map,w))}touchcancel(w){this._map.fire(new lf(w.type,this._map,w))}_firePreventable(w){if(this._map.fire(w),w.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Cs{constructor(w){this._map=w}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(w){this._map.fire(new jl(w.type,this._map,w))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new jl(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(w){this._delayContextMenu?this._contextMenuEvent=w:this._ignoreContextMenu||this._map.fire(new jl(w.type,this._map,w)),this._map.listens(\"contextmenu\")&&w.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class du{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 ku{constructor(w,B){this._map=w,this._tr=new du(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)le.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 Wf(ue,w){if(ue.length!==w.length)throw new Error(`The number of touches and points are not equal - touches ${ue.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 le=new a.P(0,0);for(let qe of ee)le._add(qe);return le.div(ee.length)}(B),this.touches=Wf(Q,B)))}touchmove(w,B,Q){if(this.aborted||!this.centroid)return;let ee=Wf(Q,B);for(let le in this.touches){let qe=ee[le];(!qe||qe.dist(this.touches[le])>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 wf{constructor(w){this.singleTap=new Us(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 le=w.timeStamp-this.lastTime<500,qe=!this.lastTap||this.lastTap.dist(ee)<30;if(le&&qe||this.reset(),this.count++,this.lastTime=w.timeStamp,this.lastTap=ee,this.count===this.numTaps)return this.reset(),ee}}}class zc{constructor(w){this._tr=new du(w),this._zoomIn=new wf({numTouches:1,numTaps:2}),this._zoomOut=new wf({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),le=this._zoomOut.touchend(w,B,Q),qe=this._tr;return ee?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom+1,around:qe.unproject(ee)},{originalEvent:w})}):le?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom-1,around:qe.unproject(le)},{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 Wu{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){ue.mousedown=ue.dragStart,ue.mousemoveWindow=ue.dragMove,ue.mouseup=ue.dragEnd,ue.contextmenu=w=>{w.preventDefault()}},Wl=({enable:ue,clickTolerance:w,bearingDegreesPerPixelMoved:B=.8})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({bearingDelta:(le.x-ee.x)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})},ah=({enable:ue,clickTolerance:w,pitchDegreesPerPixelMoved:B=-.5})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({pitchDelta:(le.y-ee.y)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})};class Zu{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=Wf(Q,B),le=new a.P(0,0),qe=new a.P(0,0),Xe=0;for(let Tt in ee){let Yt=ee[Tt],Kt=this._touches[Tt];Kt&&(le._add(Yt),qe._add(Yt.sub(Kt)),Xe++,ee[Tt]=Yt)}if(this._touches=ee,this._shouldBePrevented(Xe)||!qe.mag())return;let ot=qe.div(Xe);return this._sum._add(ot),this._sum.mag()Math.abs(ue.x)}class Bc extends Oc{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,fc(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]),le=w[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(ee,le,Q.timeStamp),this._valid?(this._lastPoints=w,this._active=!0,{pitchDelta:(ee.y+le.y)/2*-.5}):void 0}gestureBeginsVertically(w,B,Q){if(this._valid!==void 0)return this._valid;let ee=w.mag()>=2,le=B.mag()>=2;if(!ee&&!le)return;if(!ee||!le)return this._firstMove===void 0&&(this._firstMove=Q),Q-this._firstMove<100&&void 0;let qe=w.y>0==B.y>0;return fc(w)&&fc(B)&&qe}}let At={panStep:100,bearingStep:15,pitchStep:10};class Wt{constructor(w){this._tr=new du(w);let B=At;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,le=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(),le=-1);break;case 39:w.shiftKey?Q=1:(w.preventDefault(),le=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:Xe=>{let ot=this._tr;Xe.easeTo({duration:300,easeId:\"keyboardHandler\",easing:Cr,zoom:B?Math.round(ot.zoom)+B*(w.shiftKey?2:1):ot.zoom,bearing:ot.bearing+Q*this._bearingStep,pitch:ot.pitch+ee*this._pitchStep,offset:[-le*this._panStep,-qe*this._panStep],center:ot.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 Cr(ue){return ue*(2-ue)}let Ar=4.000244140625;class Kr{constructor(w,B){this._onTimeout=Q=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(Q)},this._map=w,this._tr=new du(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%Ar==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 ot=this._type===\"wheel\"&&Math.abs(this._delta)>Ar?this._wheelZoomRate:this._defaultZoomRate,Tt=2/(1+Math.exp(-Math.abs(this._delta*ot)));this._delta<0&&Tt!==0&&(Tt=1/Tt);let Yt=typeof this._targetZoom==\"number\"?w.zoomScale(this._targetZoom):w.scale;this._targetZoom=Math.min(w.maxZoom,Math.max(w.minZoom,w.scaleZoom(Yt*Tt))),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,le,qe=!1,Xe=u.now()-this._lastWheelEventTime;if(this._type===\"wheel\"&&Q&&ee&&Xe){let ot=Math.min(Xe/200,1),Tt=ee(ot);le=a.y.number(Q,B,Tt),ot<1?this._frameId||(this._frameId=!0):qe=!0}else le=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:le-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,le=Q.easing(ee+.01)-Q.easing(ee),qe=.27/Math.sqrt(le*le+1e-4)*.01,Xe=Math.sqrt(.0729-qe*qe);B=a.b8(qe,Xe,.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 ki{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 du(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 dn{constructor(){this._tap=new wf({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],le=w.timeStamp-this._tapTime<500,qe=this._tapPoint.dist(ee)<30;le&&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],le=ee.y-this._swipePoint.y;return this._swipePoint=ee,w.preventDefault(),this._active=!0,{zoomDelta:le/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 wn{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 Nn{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 Yi{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 le=document.createElement(\"div\");le.className=\"maplibregl-mobile-message\",le.textContent=Q,this._container.appendChild(le),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 on=ue=>ue.zoom||ue.drag||ue.pitch||ue.rotate;class Fi extends a.k{}function $n(ue){return ue.panDelta&&ue.panDelta.mag()||ue.zoomDelta||ue.bearingDelta||ue.pitchDelta}class Ca{constructor(w,B){this.handleWindowEvent=ee=>{this.handleEvent(ee,`${ee.type}Window`)},this.handleEvent=(ee,le)=>{if(ee.type===\"blur\")return void this.stop(!0);this._updatingCamera=!0;let qe=ee.type===\"renderFrame\"?void 0:ee,Xe={needsRenderFrame:!1},ot={},Tt={},Yt=ee.touches,Kt=Yt?this._getMapTouches(Yt):void 0,xr=Kt?c.touchPos(this._map.getCanvas(),Kt):c.mousePos(this._map.getCanvas(),ee);for(let{handlerName:be,handler:De,allowed:Be}of this._handlers){if(!De.isEnabled())continue;let et;this._blockedByActive(Tt,Be,be)?De.reset():De[le||ee.type]&&(et=De[le||ee.type](ee,xr,Kt),this.mergeHandlerResult(Xe,ot,et,be,qe),et&&et.needsRenderFrame&&this._triggerRenderFrame()),(et||De.isActive())&&(Tt[be]=De)}let Ir={};for(let be in this._previousActiveHandlers)Tt[be]||(Ir[be]=qe);this._previousActiveHandlers=Tt,(Object.keys(Ir).length||$n(Xe))&&(this._changes.push([Xe,ot,Ir]),this._triggerRenderFrame()),(Object.keys(Tt).length||$n(Xe))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:ve}=Xe;ve&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],ve(this._map))},this._map=w,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Pf(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,le,qe]of this._listeners)c.addEventListener(ee,le,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 If(B,w));let ee=B.boxZoom=new ku(B,w);this._add(\"boxZoom\",ee),w.interactive&&w.boxZoom&&ee.enable();let le=B.cooperativeGestures=new Qi(B,w.cooperativeGestures);this._add(\"cooperativeGestures\",le),w.cooperativeGestures&&le.enable();let qe=new zc(B),Xe=new Xi(B);B.doubleClickZoom=new ki(Xe,qe),this._add(\"tapZoom\",qe),this._add(\"clickZoom\",Xe),w.interactive&&w.doubleClickZoom&&B.doubleClickZoom.enable();let ot=new dn;this._add(\"tapDragZoom\",ot);let Tt=B.touchPitch=new Bc(B);this._add(\"touchPitch\",Tt),w.interactive&&w.touchPitch&&B.touchPitch.enable(w.touchPitch);let Yt=Wl(w),Kt=ah(w);B.dragRotate=new Nn(w,Yt,Kt),this._add(\"mouseRotate\",Yt,[\"mousePitch\"]),this._add(\"mousePitch\",Kt,[\"mouseRotate\"]),w.interactive&&w.dragRotate&&B.dragRotate.enable();let xr=(({enable:et,clickTolerance:We})=>{let it=new Xu({checkCorrectEvent:Ft=>c.mouseButton(Ft)===0&&!Ft.ctrlKey});return new Wu({clickTolerance:We,move:(Ft,Ht)=>({around:Ht,panDelta:Ht.sub(Ft)}),activateOnStart:!0,moveStateManager:it,enable:et,assignEvents:Xf})})(w),Ir=new Zu(w,B);B.dragPan=new wn(Q,xr,Ir),this._add(\"mousePan\",xr),this._add(\"touchPan\",Ir,[\"touchZoom\",\"touchRotate\"]),w.interactive&&w.dragPan&&B.dragPan.enable(w.dragPan);let ve=new cf,be=new vu;B.touchZoomRotate=new Yi(Q,be,ve,ot),this._add(\"touchRotate\",ve,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",be,[\"touchPan\",\"touchRotate\"]),w.interactive&&w.touchZoomRotate&&B.touchZoomRotate.enable(w.touchZoomRotate);let De=B.scrollZoom=new Kr(B,()=>this._triggerRenderFrame());this._add(\"scrollZoom\",De,[\"mousePan\"]),w.interactive&&w.scrollZoom&&B.scrollZoom.enable(w.scrollZoom);let Be=B.keyboard=new Wt(B);this._add(\"keyboard\",Be),w.interactive&&w.keyboard&&B.keyboard.enable(),this._add(\"blockableMapEvent\",new Cs(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!!on(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,le){if(!Q)return;a.e(w,Q);let qe={handlerName:ee,originalEvent:Q.originalEvent||le};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,le,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,le),a.e(Q,qe);this._updateMapTransform(w,B,Q),this._changes=[]}_updateMapTransform(w,B,Q){let ee=this._map,le=ee._getTransformForUpdate(),qe=ee.terrain;if(!($n(w)||qe&&this._terrainMovement))return this._fireEvents(B,Q,!0);let{panDelta:Xe,zoomDelta:ot,bearingDelta:Tt,pitchDelta:Yt,around:Kt,pinchAround:xr}=w;xr!==void 0&&(Kt=xr),ee._stop(!0),Kt=Kt||ee.transform.centerPoint;let Ir=le.pointLocation(Xe?Kt.sub(Xe):Kt);Tt&&(le.bearing+=Tt),Yt&&(le.pitch+=Yt),ot&&(le.zoom+=ot),qe?this._terrainMovement||!B.drag&&!B.zoom?B.drag&&this._terrainMovement?le.center=le.pointLocation(le.centerPoint.sub(Xe)):le.setLocationAtPoint(Ir,Kt):(this._terrainMovement=!0,this._map._elevationFreeze=!0,le.setLocationAtPoint(Ir,Kt)):le.setLocationAtPoint(Ir,Kt),ee._applyUpdatedTransform(le),this._map._update(),w.noInertia||this._inertia.record(w),this._fireEvents(B,Q,!0)}_fireEvents(w,B,Q){let ee=on(this._eventsInProgress),le=on(w),qe={};for(let Kt in w){let{originalEvent:xr}=w[Kt];this._eventsInProgress[Kt]||(qe[`${Kt}start`]=xr),this._eventsInProgress[Kt]=w[Kt]}!ee&&le&&this._fireEvent(\"movestart\",le.originalEvent);for(let Kt in qe)this._fireEvent(Kt,qe[Kt]);le&&this._fireEvent(\"move\",le.originalEvent);for(let Kt in w){let{originalEvent:xr}=w[Kt];this._fireEvent(Kt,xr)}let Xe={},ot;for(let Kt in this._eventsInProgress){let{handlerName:xr,originalEvent:Ir}=this._eventsInProgress[Kt];this._handlersById[xr].isActive()||(delete this._eventsInProgress[Kt],ot=B[xr]||Ir,Xe[`${Kt}end`]=ot)}for(let Kt in Xe)this._fireEvent(Kt,Xe[Kt]);let Tt=on(this._eventsInProgress),Yt=(ee||le)&&!Tt;if(Yt&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;let Kt=this._map._getTransformForUpdate();Kt.recalculateZoom(this._map.terrain),this._map._applyUpdatedTransform(Kt)}if(Q&&Yt){this._updatingCamera=!0;let Kt=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),xr=Ir=>Ir!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Fi(\"renderFrame\",{timeStamp:w})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Ra 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(le,De,tr)),this._rotating&&(ee.bearing=a.y.number(qe,Tt,tr)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,tr)),this._padding&&(ee.interpolatePadding(ot,Kt,tr),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(tr),it)ee.setLocationAtPoint(it,Ft);else{let dr=ee.zoomScale(ee.zoom-le),Sr=De>le?Math.min(2,We):Math.max(.5,We),Or=Math.pow(Sr,1-tr),Wr=ee.unproject(Be.add(et.mult(tr*Or)).mult(dr));ee.setLocationAtPoint(ee.renderWorldCopies?Wr.wrap():Wr,Ir)}this._applyUpdatedTransform(ee),this._fireMoveEvents(B)},tr=>{this.terrain&&w.freezeElevation&&this._finalizeElevation(),this._afterEase(B,tr)},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 le=Q.clone(),{center:qe,zoom:Xe,pitch:ot,bearing:Tt,elevation:Yt}=ee(le);qe&&(le.center=qe),Xe!==void 0&&(le.zoom=Xe),ot!==void 0&&(le.pitch=ot),Tt!==void 0&&(le.bearing=Tt),Yt!==void 0&&(le.elevation=Yt),Q.apply(le)}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,le=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)),le&&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 Cn=a.M(w,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(Cn,B)}this.stop(),w=a.e({offset:[0,0],speed:1.2,curve:1.42,easing:a.b9},w);let ee=this._getTransformForUpdate(),le=ee.zoom,qe=ee.bearing,Xe=ee.pitch,ot=ee.padding,Tt=\"bearing\"in w?this._normalizeBearing(w.bearing,qe):qe,Yt=\"pitch\"in w?+w.pitch:Xe,Kt=\"padding\"in w?w.padding:ee.padding,xr=a.P.convert(w.offset),Ir=ee.centerPoint.add(xr),ve=ee.pointLocation(Ir),{center:be,zoom:De}=ee.getConstrained(a.N.convert(w.center||ve),(Q=w.zoom)!==null&&Q!==void 0?Q:le);this._normalizeCenter(be,ee);let Be=ee.zoomScale(De-le),et=ee.project(ve),We=ee.project(be).sub(et),it=w.curve,Ft=Math.max(ee.width,ee.height),Ht=Ft/Be,tr=We.mag();if(\"minZoom\"in w){let Cn=a.ac(Math.min(w.minZoom,le,De),ee.minZoom,ee.maxZoom),Kn=Ft/ee.zoomScale(Cn-le);it=Math.sqrt(Kn/tr*2)}let dr=it*it;function Sr(Cn){let Kn=(Ht*Ht-Ft*Ft+(Cn?-1:1)*dr*dr*tr*tr)/(2*(Cn?Ht:Ft)*dr*tr);return Math.log(Math.sqrt(Kn*Kn+1)-Kn)}function Or(Cn){return(Math.exp(Cn)-Math.exp(-Cn))/2}function Wr(Cn){return(Math.exp(Cn)+Math.exp(-Cn))/2}let ni=Sr(!1),Pi=function(Cn){return Wr(ni)/Wr(ni+it*Cn)},cn=function(Cn){return Ft*((Wr(ni)*(Or(Kn=ni+it*Cn)/Wr(Kn))-Or(ni))/dr)/tr;var Kn},ln=(Sr(!0)-ni)/it;if(Math.abs(tr)<1e-6||!isFinite(ln)){if(Math.abs(Ft-Ht)<1e-6)return this.easeTo(w,B);let Cn=Ht0,Pi=Kn=>Math.exp(Cn*it*Kn)}return w.duration=\"duration\"in w?+w.duration:1e3*ln/(\"screenSpeed\"in w?+w.screenSpeed/it:+w.speed),w.maxDuration&&w.duration>w.maxDuration&&(w.duration=0),this._zooming=!0,this._rotating=qe!==Tt,this._pitching=Yt!==Xe,this._padding=!ee.isPaddingEqual(Kt),this._prepareEase(B,!1),this.terrain&&this._prepareElevation(be),this._ease(Cn=>{let Kn=Cn*ln,Ta=1/Pi(Kn);ee.zoom=Cn===1?De:le+ee.scaleZoom(Ta),this._rotating&&(ee.bearing=a.y.number(qe,Tt,Cn)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,Cn)),this._padding&&(ee.interpolatePadding(ot,Kt,Cn),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(Cn);let fa=Cn===1?be:ee.unproject(et.add(We.mult(cn(Kn))).mult(Ta));ee.setLocationAtPoint(ee.renderWorldCopies?fa.wrap():fa,Ir),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 La={compact:!0,customAttribution:'
MapLibre'};class Na{constructor(w=La){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 le=B[ee];if(le.used||le.usedForTerrain){let qe=le.getSource();qe.attribution&&w.indexOf(qe.attribution)<0&&w.push(qe.attribution)}}w=w.filter(ee=>String(ee).trim()),w.sort((ee,le)=>ee.length-le.length),w=w.filter((ee,le)=>{for(let qe=le+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 Yn{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 Dn{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 Ka=a.Y([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class bo 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 Vt(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 le=w.clone();le.posMatrix=new Float64Array(16),a.aP(le.posMatrix,0,a.X,0,a.X,0,1),B[Q]=le}else if(ee.canonical.isChildOf(w.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=ee.canonical.z-w.canonical.z,Xe=ee.canonical.x-(ee.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,Tt,0,Tt,0,1),a.J(le.posMatrix,le.posMatrix,[-Xe*Tt,-ot*Tt,0]),B[Q]=le}else if(w.canonical.isChildOf(ee.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=w.canonical.z-ee.canonical.z,Xe=w.canonical.x-(w.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,a.X,0,a.X,0,1),a.J(le.posMatrix,le.posMatrix,[Xe*Tt,ot*Tt,0]),a.K(le.posMatrix,le.posMatrix,[1/2**qe,1/2**qe,0]),B[Q]=le}}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&&(!le||!le.dem);)le=this.sourceCache.getTileByID(w.scaledTo(ee--).key);return le}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 bo(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 le;if(!(B>=0&&B=0&&Qw.canonical.z&&(w.canonical.z>=ee?le=w.canonical.z-ee:a.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));let qe=w.canonical.x-(w.canonical.x>>le<>le<>8<<4|le>>8,B[qe+3]=0;let Q=new a.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(B.buffer)),ee=new g(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,le=Math.round(w.x*this.painter.pixelRatio/devicePixelRatio),qe=Math.round(w.y*this.painter.pixelRatio/devicePixelRatio),Xe=Math.round(this.painter.height/devicePixelRatio);Q.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),ee.readPixels(le,Xe-qe-1,1,1,ee.RGBA,ee.UNSIGNED_BYTE,B),Q.bindFramebuffer.set(null);let ot=B[0]+(B[2]>>4<<8),Tt=B[1]+((15&B[2])<<8),Yt=this.coordsIndex[255-B[3]],Kt=Yt&&this.sourceCache.getTileByID(Yt);if(!Kt)return null;let xr=this._coordsTextureSize,Ir=(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 as={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ws{constructor(w,B){this.painter=w,this.terrain=B,this.pool=new Ss(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 le of ee){let qe=this.terrain.sourceCache.getTerrainCoords(le);for(let Xe in qe)this._coordsDescendingInv[Q][Xe]||(this._coordsDescendingInv[Q][Xe]=[]),this._coordsDescendingInv[Q][Xe].push(qe[Xe])}}this._coordsDescendingInvStr={};for(let Q of w._order){let ee=w._layers[Q],le=ee.source;if(as[ee.type]&&!this._coordsDescendingInvStr[le]){this._coordsDescendingInvStr[le]={};for(let qe in this._coordsDescendingInv[le])this._coordsDescendingInvStr[le][qe]=this._coordsDescendingInv[le][qe].map(Xe=>Xe.key).sort().join()}}for(let Q of this._renderableTiles)for(let ee in this._coordsDescendingInvStr){let le=this._coordsDescendingInvStr[ee][Q.tileID.key];le&&le!==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(as[B]&&(this._prevType&&as[this._prevType]||this._stacks.push([]),this._prevType=B,this._stacks[this._stacks.length-1].push(w.id),!ee))return!0;if(as[this._prevType]||as[B]&&ee){this._prevType=B;let le=this._stacks.length-1,qe=this._stacks[le]||[];for(let Xe of this._renderableTiles){if(this.pool.isFull()&&(js(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(Xe),Xe.rtt[le]){let Tt=this.pool.getObjectForId(Xe.rtt[le].id);if(Tt.stamp===Xe.rtt[le].stamp){this.pool.useObject(Tt);continue}}let ot=this.pool.getOrCreateFreeObject();this.pool.useObject(ot),this.pool.stampObject(ot),Xe.rtt[le]={id:ot.id,stamp:ot.stamp},Q.context.bindFramebuffer.set(ot.fbo.framebuffer),Q.context.clear({color:a.aM.transparent,stencil:0}),Q.currentStencilSource=void 0;for(let Tt=0;Tt{ue.touchstart=ue.dragStart,ue.touchmoveWindow=ue.dragMove,ue.touchend=ue.dragEnd},va={showCompass:!0,showZoom:!0,visualizePitch:!1};class no{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(),le=w.dragRotate._mousePitch.getClickTolerance();this.element=B,this.mouseRotate=Wl({clickTolerance:ee,enable:!0}),this.touchRotate=(({enable:qe,clickTolerance:Xe,bearingDegreesPerPixelMoved:ot=.8})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({bearingDelta:(Kt.x-Yt.x)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:ee,enable:!0}),this.map=w,Q&&(this.mousePitch=ah({clickTolerance:le,enable:!0}),this.touchPitch=(({enable:qe,clickTolerance:Xe,pitchDegreesPerPixelMoved:ot=-.5})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({pitchDelta:(Kt.y-Yt.y)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:le,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:le}=this.mousePitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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:le}=this.touchPitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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 ys;function rs(ue,w,B){let Q=new a.N(ue.lng,ue.lat);if(ue=new a.N(ue.lng,ue.lat),w){let ee=new a.N(ue.lng-360,ue.lat),le=new a.N(ue.lng+360,ue.lat),qe=B.locationPoint(ue).distSqr(w);B.locationPoint(ee).distSqr(w)180;){let ee=B.locationPoint(ue);if(ee.x>=0&&ee.y>=0&&ee.x<=B.width&&ee.y<=B.height)break;ue.lng>B.center.lng?ue.lng-=360:ue.lng+=360}return ue.lng!==Q.lng&&B.locationPoint(ue).y>B.height/2-B.getHorizon()?ue:Q}let $l={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 Cu(ue,w,B){let Q=ue.classList;for(let ee in $l)Q.remove(`maplibregl-${B}-anchor-${ee}`);Q.add(`maplibregl-${B}-anchor-${w}`)}class Yu 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?rs(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 le=\"\";this._rotationAlignment===\"viewport\"||this._rotationAlignment===\"auto\"?le=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===\"map\"&&(le=`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,`${$l[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${qe} ${le}`),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 le=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");le.setAttributeNS(null,\"stroke\",\"none\"),le.setAttributeNS(null,\"stroke-width\",\"1\"),le.setAttributeNS(null,\"fill\",\"none\"),le.setAttributeNS(null,\"fill-rule\",\"evenodd\");let qe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");qe.setAttributeNS(null,\"fill-rule\",\"nonzero\");let Xe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Xe.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),Xe.setAttributeNS(null,\"fill\",\"#000000\");let ot=[{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 Be of ot){let et=c.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");et.setAttributeNS(null,\"opacity\",\"0.04\"),et.setAttributeNS(null,\"cx\",\"10.5\"),et.setAttributeNS(null,\"cy\",\"5.80029008\"),et.setAttributeNS(null,\"rx\",Be.rx),et.setAttributeNS(null,\"ry\",Be.ry),Xe.appendChild(et)}let Tt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Tt.setAttributeNS(null,\"fill\",this._color);let Yt=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");Yt.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\"),Tt.appendChild(Yt);let Kt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Kt.setAttributeNS(null,\"opacity\",\"0.25\"),Kt.setAttributeNS(null,\"fill\",\"#000000\");let xr=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");xr.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\"),Kt.appendChild(xr);let Ir=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Ir.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),Ir.setAttributeNS(null,\"fill\",\"#FFFFFF\");let ve=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");ve.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 De=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");De.setAttributeNS(null,\"fill\",\"#FFFFFF\"),De.setAttributeNS(null,\"cx\",\"5.5\"),De.setAttributeNS(null,\"cy\",\"5.5\"),De.setAttributeNS(null,\"r\",\"5.4999962\"),ve.appendChild(be),ve.appendChild(De),qe.appendChild(Xe),qe.appendChild(Tt),qe.appendChild(Kt),qe.appendChild(Ir),qe.appendChild(ve),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()}),Cu(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,le=ee.terrain.depthAtPoint(this._pos),qe=ee.terrain.getElevationForLngLatZoom(this._lngLat,ee.transform.tileZoom);if(ee.transform.lngLatToCameraDepth(this._lngLat,qe)-le<.006)return void(this._element.style.opacity=this._opacity);let Xe=-this._offset.y/ee.transform._pixelPerMeter,ot=Math.sin(ee.getPitch()*Math.PI/180)*Xe,Tt=ee.terrain.depthAtPoint(new a.P(this._pos.x,this._pos.y-this._offset.y)),Yt=ee.transform.lngLatToCameraDepth(this._lngLat,qe+ot)-Tt>.006;!((Q=this._popup)===null||Q===void 0)&&Q.isOpen()&&Yt&&this._popup.remove(),this._element.style.opacity=Yt?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 Nc={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},pu=0,Uc=!1,xu={maxWidth:100,unit:\"metric\"};function Ac(ue,w,B){let Q=B&&B.maxWidth||100,ee=ue._container.clientHeight/2,le=ue.unproject([0,ee]),qe=ue.unproject([Q,ee]),Xe=le.distanceTo(qe);if(B&&B.unit===\"imperial\"){let ot=3.2808*Xe;ot>5280?Ua(w,Q,ot/5280,ue._getUIString(\"ScaleControl.Miles\")):Ua(w,Q,ot,ue._getUIString(\"ScaleControl.Feet\"))}else B&&B.unit===\"nautical\"?Ua(w,Q,Xe/1852,ue._getUIString(\"ScaleControl.NauticalMiles\")):Xe>=1e3?Ua(w,Q,Xe/1e3,ue._getUIString(\"ScaleControl.Kilometers\")):Ua(w,Q,Xe,ue._getUIString(\"ScaleControl.Meters\"))}function Ua(ue,w,B,Q){let ee=function(le){let qe=Math.pow(10,`${Math.floor(le)}`.length-1),Xe=le/qe;return Xe=Xe>=10?10:Xe>=5?5:Xe>=3?3:Xe>=2?2:Xe>=1?1:function(ot){let Tt=Math.pow(10,Math.ceil(-Math.log(ot)/Math.LN10));return Math.round(ot*Tt)/Tt}(Xe),qe*Xe}(B);ue.style.width=w*(ee/B)+\"px\",ue.innerHTML=`${ee} ${Q}`}let oo={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\",subpixelPositioning:!1},Vc=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function hc(ue){if(ue){if(typeof ue==\"number\"){let w=Math.round(Math.abs(ue)/Math.SQRT2);return{center:new a.P(0,0),top:new a.P(0,ue),\"top-left\":new a.P(w,w),\"top-right\":new a.P(-w,w),bottom:new a.P(0,-ue),\"bottom-left\":new a.P(w,-w),\"bottom-right\":new a.P(-w,-w),left:new a.P(ue,0),right:new a.P(-ue,0)}}if(ue instanceof a.P||Array.isArray(ue)){let w=a.P.convert(ue);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(ue.center||[0,0]),top:a.P.convert(ue.top||[0,0]),\"top-left\":a.P.convert(ue[\"top-left\"]||[0,0]),\"top-right\":a.P.convert(ue[\"top-right\"]||[0,0]),bottom:a.P.convert(ue.bottom||[0,0]),\"bottom-left\":a.P.convert(ue[\"bottom-left\"]||[0,0]),\"bottom-right\":a.P.convert(ue[\"bottom-right\"]||[0,0]),left:a.P.convert(ue.left||[0,0]),right:a.P.convert(ue.right||[0,0])}}return hc(new a.P(0,0))}let Ku=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=Na,i.BoxZoomHandler=ku,i.CanvasSource=Jt,i.CooperativeGesturesHandler=Qi,i.DoubleClickZoomHandler=ki,i.DragPanHandler=wn,i.DragRotateHandler=Nn,i.EdgeInsets=hu,i.FullscreenControl=class extends a.E{constructor(ue={}){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,ue&&ue.container&&(ue.container instanceof HTMLElement?this._container=ue.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(ue){return this._map=ue,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 ue=this._fullscreenButton=c.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);c.create(\"span\",\"maplibregl-ctrl-icon\",ue).setAttribute(\"aria-hidden\",\"true\"),ue.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let ue=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",ue),this._fullscreenButton.title=ue}_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=st,i.GeolocateControl=class extends a.E{constructor(ue){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(),le=a.e({bearing:ee},this.options.fitBoundsOptions),qe=ce.fromLngLat(B,Q);this._map.fitBounds(qe,le,{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&&Uc)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 Yu({element:this._dotElement}),this._circleElement=c.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Yu({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({},Nc,ue)}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),function(){return a._(this,arguments,void 0,function*(w=!1){if(ys!==void 0&&!w)return ys;if(window.navigator.permissions===void 0)return ys=!!window.navigator.geolocation,ys;try{ys=(yield window.navigator.permissions.query({name:\"geolocation\"})).state!==\"denied\"}catch(B){ys=!!window.navigator.geolocation}return ys})}().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,pu=0,Uc=!1}_isOutOfMapMaxBounds(ue){let w=this._map.getMaxBounds(),B=ue.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 ue=this._map.getBounds(),w=ue.getSouthEast(),B=ue.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\":pu--,Uc=!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 ue;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),pu++,pu>1?(ue={maximumAge:6e5,timeout:0},Uc=!0):(ue=this.options.positionOptions,Uc=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,ue)}}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=Ah,i.ImageSource=Gt,i.KeyboardHandler=Wt,i.LngLatBounds=ce,i.LogoControl=Yn,i.Map=class extends Ra{constructor(ue){a.bf.mark(a.bg.create);let w=Object.assign(Object.assign({},Ws),ue);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 nl(w.minZoom,w.maxZoom,w.minPitch,w.maxPitch,w.renderWorldCopies),{bearingSnap:w.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new Dn,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({},Ho),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=p.addThrottleControl(()=>this.isMoving()),this._requestManager=new k(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=nh(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 Ca(this,w),this._hash=w.hash&&new Ah(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 Na(typeof w.attributionControl==\"boolean\"?void 0:w.attributionControl)),w.maplibreLogo&&this.addControl(new Yn,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(ue,w){if(w===void 0&&(w=ue.getDefaultPosition?ue.getDefaultPosition():\"top-right\"),!ue||!ue.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=ue.onAdd(this);this._controls.push(ue);let Q=this._controlPositions[w];return w.indexOf(\"bottom\")!==-1?Q.insertBefore(B,Q.firstChild):Q.appendChild(B),this}removeControl(ue){if(!ue||!ue.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(ue);return w>-1&&this._controls.splice(w,1),ue.onRemove(this),this}hasControl(ue){return this._controls.indexOf(ue)>-1}calculateCameraOptionsFromTo(ue,w,B,Q){return Q==null&&this.terrain&&(Q=this.terrain.getElevationForLngLatZoom(B,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(ue,w,B,Q)}resize(ue){var w;let B=this._containerDimensions(),Q=B[0],ee=B[1],le=this._getClampedPixelRatio(Q,ee);if(this._resizeCanvas(Q,ee,le),this.painter.resize(Q,ee,le),this.painter.overLimit()){let Xe=this.painter.context.gl;this._maxCanvasSize=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];let ot=this._getClampedPixelRatio(Q,ee);this._resizeCanvas(Q,ee,ot),this.painter.resize(Q,ee,ot)}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\",ue)).fire(new a.k(\"move\",ue))),this.fire(new a.k(\"resize\",ue)),qe&&this.fire(new a.k(\"moveend\",ue)),this}_getClampedPixelRatio(ue,w){let{0:B,1:Q}=this._maxCanvasSize,ee=this.getPixelRatio(),le=ue*ee,qe=w*ee;return Math.min(le>B?B/le:1,qe>Q?Q/qe:1)*ee}getPixelRatio(){var ue;return(ue=this._overridePixelRatio)!==null&&ue!==void 0?ue:devicePixelRatio}setPixelRatio(ue){this._overridePixelRatio=ue,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(ue){return this.transform.setMaxBounds(ce.convert(ue)),this._update()}setMinZoom(ue){if((ue=ue==null?-2:ue)>=-2&&ue<=this.transform.maxZoom)return this.transform.minZoom=ue,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=ue,this._update(),this.getZoom()>ue&&this.setZoom(ue),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(ue){if((ue=ue==null?0:ue)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(ue>=0&&ue<=this.transform.maxPitch)return this.transform.minPitch=ue,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(ue>=this.transform.minPitch)return this.transform.maxPitch=ue,this._update(),this.getPitch()>ue&&this.setPitch(ue),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(ue){return this.transform.renderWorldCopies=ue,this._update()}project(ue){return this.transform.locationPoint(a.N.convert(ue),this.style&&this.terrain)}unproject(ue){return this.transform.pointLocation(a.P.convert(ue),this.terrain)}isMoving(){var ue;return this._moving||((ue=this.handlers)===null||ue===void 0?void 0:ue.isMoving())}isZooming(){var ue;return this._zooming||((ue=this.handlers)===null||ue===void 0?void 0:ue.isZooming())}isRotating(){var ue;return this._rotating||((ue=this.handlers)===null||ue===void 0?void 0:ue.isRotating())}_createDelegatedListener(ue,w,B){if(ue===\"mouseenter\"||ue===\"mouseover\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:le=>{let qe=w.filter(ot=>this.getLayer(ot)),Xe=qe.length!==0?this.queryRenderedFeatures(le.point,{layers:qe}):[];Xe.length?Q||(Q=!0,B.call(this,new jl(ue,this,le.originalEvent,{features:Xe}))):Q=!1},mouseout:()=>{Q=!1}}}}if(ue===\"mouseleave\"||ue===\"mouseout\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:qe=>{let Xe=w.filter(ot=>this.getLayer(ot));(Xe.length!==0?this.queryRenderedFeatures(qe.point,{layers:Xe}):[]).length?Q=!0:Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))},mouseout:qe=>{Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))}}}}{let Q=ee=>{let le=w.filter(Xe=>this.getLayer(Xe)),qe=le.length!==0?this.queryRenderedFeatures(ee.point,{layers:le}):[];qe.length&&(ee.features=qe,B.call(this,ee),delete ee.features)};return{layers:w,listener:B,delegates:{[ue]:Q}}}}_saveDelegatedListener(ue,w){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[ue]=this._delegatedListeners[ue]||[],this._delegatedListeners[ue].push(w)}_removeDelegatedListener(ue,w,B){if(!this._delegatedListeners||!this._delegatedListeners[ue])return;let Q=this._delegatedListeners[ue];for(let ee=0;eew.includes(qe))){for(let qe in le.delegates)this.off(qe,le.delegates[qe]);return void Q.splice(ee,1)}}}on(ue,w,B){if(B===void 0)return super.on(ue,w);let Q=this._createDelegatedListener(ue,typeof w==\"string\"?[w]:w,B);this._saveDelegatedListener(ue,Q);for(let ee in Q.delegates)this.on(ee,Q.delegates[ee]);return this}once(ue,w,B){if(B===void 0)return super.once(ue,w);let Q=typeof w==\"string\"?[w]:w,ee=this._createDelegatedListener(ue,Q,B);for(let le in ee.delegates){let qe=ee.delegates[le];ee.delegates[le]=(...Xe)=>{this._removeDelegatedListener(ue,Q,B),qe(...Xe)}}this._saveDelegatedListener(ue,ee);for(let le in ee.delegates)this.once(le,ee.delegates[le]);return this}off(ue,w,B){return B===void 0?super.off(ue,w):(this._removeDelegatedListener(ue,typeof w==\"string\"?[w]:w,B),this)}queryRenderedFeatures(ue,w){if(!this.style)return[];let B,Q=ue instanceof a.P||Array.isArray(ue),ee=Q?ue:[[0,0],[this.transform.width,this.transform.height]];if(w=w||(Q?{}:ue)||{},ee instanceof a.P||typeof ee[0]==\"number\")B=[a.P.convert(ee)];else{let le=a.P.convert(ee[0]),qe=a.P.convert(ee[1]);B=[le,new a.P(qe.x,le.y),qe,new a.P(le.x,qe.y),le]}return this.style.queryRenderedFeatures(B,w,this.transform)}querySourceFeatures(ue,w){return this.style.querySourceFeatures(ue,w)}setStyle(ue,w){return(w=a.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},w)).diff!==!1&&w.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&ue?(this._diffStyle(ue,w),this):(this._localIdeographFontFamily=w.localIdeographFontFamily,this._updateStyle(ue,w))}setTransformRequest(ue){return this._requestManager.setTransformRequest(ue),this}_getUIString(ue){let w=this._locale[ue];if(w==null)throw new Error(`Missing UI string '${ue}'`);return w}_updateStyle(ue,w){if(w.transformStyle&&this.style&&!this.style._loaded)return void this.style.once(\"style.load\",()=>this._updateStyle(ue,w));let B=this.style&&w.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!ue)),ue?(this.style=new Ga(this,w||{}),this.style.setEventedParent(this,{style:this.style}),typeof ue==\"string\"?this.style.loadURL(ue,w,B):this.style.loadJSON(ue,w,B),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ga(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(ue,w){if(typeof ue==\"string\"){let B=this._requestManager.transformRequest(ue,\"Style\");a.h(B,new AbortController).then(Q=>{this._updateDiff(Q.data,w)}).catch(Q=>{Q&&this.fire(new a.j(Q))})}else typeof ue==\"object\"&&this._updateDiff(ue,w)}_updateDiff(ue,w){try{this.style.setState(ue,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(ue,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(ue,w){return this._lazyInitEmptyStyle(),this.style.addSource(ue,w),this._update(!0)}isSourceLoaded(ue){let w=this.style&&this.style.sourceCaches[ue];if(w!==void 0)return w.loaded();this.fire(new a.j(new Error(`There is no source with ID '${ue}'`)))}setTerrain(ue){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),ue){let w=this.style.sourceCaches[ue.source];if(!w)throw new Error(`cannot load terrain, because there exists no source with ID: ${ue.source}`);this.terrain===null&&w.reload();for(let B in this.style._layers){let Q=this.style._layers[B];Q.type===\"hillshade\"&&Q.source===ue.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,ue),this.painter.renderToTexture=new ws(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!==ue.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:ue})),this}getTerrain(){var ue,w;return(w=(ue=this.terrain)===null||ue===void 0?void 0:ue.options)!==null&&w!==void 0?w:null}areTilesLoaded(){let ue=this.style&&this.style.sourceCaches;for(let w in ue){let B=ue[w]._tiles;for(let Q in B){let ee=B[Q];if(ee.state!==\"loaded\"&&ee.state!==\"errored\")return!1}}return!0}removeSource(ue){return this.style.removeSource(ue),this._update(!0)}getSource(ue){return this.style.getSource(ue)}addImage(ue,w,B={}){let{pixelRatio:Q=1,sdf:ee=!1,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt}=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:Yt,height:Kt,data:xr}=w,Ir=w;return this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},new Uint8Array(xr)),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0,userImage:Ir}),Ir.onAdd&&Ir.onAdd(this,ue),this}}{let{width:Yt,height:Kt,data:xr}=u.getImageData(w);this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},xr),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0})}}updateImage(ue,w){let B=this.style.getImage(ue);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:le,data:qe}=Q;if(ee===void 0||le===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||le!==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 Xe=!(w instanceof HTMLImageElement||a.b(w));return B.data.replace(qe,Xe),this.style.updateImage(ue,B),this}getImage(ue){return this.style.getImage(ue)}hasImage(ue){return ue?!!this.style.getImage(ue):(this.fire(new a.j(new Error(\"Missing required image id\"))),!1)}removeImage(ue){this.style.removeImage(ue)}loadImage(ue){return p.getImage(this._requestManager.transformRequest(ue,\"Image\"),new AbortController)}listImages(){return this.style.listImages()}addLayer(ue,w){return this._lazyInitEmptyStyle(),this.style.addLayer(ue,w),this._update(!0)}moveLayer(ue,w){return this.style.moveLayer(ue,w),this._update(!0)}removeLayer(ue){return this.style.removeLayer(ue),this._update(!0)}getLayer(ue){return this.style.getLayer(ue)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(ue,w,B){return this.style.setLayerZoomRange(ue,w,B),this._update(!0)}setFilter(ue,w,B={}){return this.style.setFilter(ue,w,B),this._update(!0)}getFilter(ue){return this.style.getFilter(ue)}setPaintProperty(ue,w,B,Q={}){return this.style.setPaintProperty(ue,w,B,Q),this._update(!0)}getPaintProperty(ue,w){return this.style.getPaintProperty(ue,w)}setLayoutProperty(ue,w,B,Q={}){return this.style.setLayoutProperty(ue,w,B,Q),this._update(!0)}getLayoutProperty(ue,w){return this.style.getLayoutProperty(ue,w)}setGlyphs(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(ue,w),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(ue,w,B={}){return this._lazyInitEmptyStyle(),this.style.addSprite(ue,w,B,Q=>{Q||this._update(!0)}),this}removeSprite(ue){return this._lazyInitEmptyStyle(),this.style.removeSprite(ue),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setSprite(ue,w,B=>{B||this._update(!0)}),this}setLight(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setLight(ue,w),this._update(!0)}getLight(){return this.style.getLight()}setSky(ue){return this._lazyInitEmptyStyle(),this.style.setSky(ue),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(ue,w){return this.style.setFeatureState(ue,w),this._update()}removeFeatureState(ue,w){return this.style.removeFeatureState(ue,w),this._update()}getFeatureState(ue){return this.style.getFeatureState(ue)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let ue=0,w=0;return this._container&&(ue=this._container.clientWidth||400,w=this._container.clientHeight||300),[ue,w]}_setupContainer(){let ue=this._container;ue.classList.add(\"maplibregl-map\");let w=this._canvasContainer=c.create(\"div\",\"maplibregl-canvas-container\",ue);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\",ue),le=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(qe=>{le[qe]=c.create(\"div\",`maplibregl-ctrl-${qe} `,ee)}),this._container.addEventListener(\"scroll\",this._onMapScroll,!1)}_resizeCanvas(ue,w,B){this._canvas.width=Math.floor(B*ue),this._canvas.height=Math.floor(B*w),this._canvas.style.width=`${ue}px`,this._canvas.style.height=`${w}px`}_setupPainter(){let ue={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:ue},Q&&(w.statusMessage=Q.statusMessage,w.type=Q.type)},{once:!0});let B=this._canvas.getContext(\"webgl2\",ue)||this._canvas.getContext(\"webgl\",ue);if(!B){let Q=\"Failed to initialize WebGL\";throw w?(w.message=Q,new Error(JSON.stringify(w))):new Error(Q)}this.painter=new Dc(B,this.transform),f.testSupport(B)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(ue){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||ue,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(ue){return this._update(),this._renderTaskQueue.add(ue)}_cancelRenderFrame(ue){this._renderTaskQueue.remove(ue)}_render(ue){let w=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(ue),this._removed)return;let B=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let ee=this.transform.zoom,le=u.now();this.style.zoomHistory.update(ee,le);let qe=new a.z(ee,{now:le,fadeDuration:w,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),Xe=qe.crossFadingFactor();Xe===1&&Xe===this._crossFadingFactor||(B=!0,this._crossFadingFactor=Xe),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 ue;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),p.removeThrottleControl(this._imageQueueHandle),(ue=this._resizeObserver)===null||ue===void 0||ue.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(ue=>{a.bf.frame(ue),this._frameRequest=null,this._render(ue)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(ue){this._showTileBoundaries!==ue&&(this._showTileBoundaries=ue,this._update())}get showPadding(){return!!this._showPadding}set showPadding(ue){this._showPadding!==ue&&(this._showPadding=ue,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(ue){this._showCollisionBoxes!==ue&&(this._showCollisionBoxes=ue,ue?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(ue){this._showOverdrawInspector!==ue&&(this._showOverdrawInspector=ue,this._update())}get repaint(){return!!this._repaint}set repaint(ue){this._repaint!==ue&&(this._repaint=ue,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(ue){this._vertices=ue,this._update()}get version(){return ml}getCameraTargetElevation(){return this.transform.elevation}},i.MapMouseEvent=jl,i.MapTouchEvent=lf,i.MapWheelEvent=Hh,i.Marker=Yu,i.NavigationControl=class{constructor(ue){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({},va,ue),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(ue){return this._map=ue,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 no(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(ue,w){let B=c.create(\"button\",ue,this._container);return B.type=\"button\",B.addEventListener(\"click\",w),B}},i.Popup=class extends a.E{constructor(ue){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 Xe of this.options.className.split(\" \"))this._container.classList.add(Xe);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?rs(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,le=hc(this.options.offset);if(!ee){let Xe=this._container.offsetWidth,ot=this._container.offsetHeight,Tt;Tt=Q.y+le.bottom.ythis._map.transform.height-ot?[\"bottom\"]:[],Q.xthis._map.transform.width-Xe/2&&Tt.push(\"right\"),ee=Tt.length===0?\"bottom\":Tt.join(\"-\")}let qe=Q.add(le[ee]);this.options.subpixelPositioning||(qe=qe.round()),c.setTransform(this._container,`${$l[ee]} translate(${qe.x}px,${qe.y}px)`),Cu(this._container,ee,\"popup\")},this._onClose=()=>{this.remove()},this.options=a.e(Object.create(oo),ue)}addTo(ue){return this._map&&this.remove(),this._map=ue,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(ue){return this._lngLat=a.N.convert(ue),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(ue){return this.setDOMContent(document.createTextNode(ue))}setHTML(ue){let w=document.createDocumentFragment(),B=document.createElement(\"body\"),Q;for(B.innerHTML=ue;Q=B.firstChild,Q;)w.appendChild(Q);return this.setDOMContent(w)}getMaxWidth(){var ue;return(ue=this._container)===null||ue===void 0?void 0:ue.style.maxWidth}setMaxWidth(ue){return this.options.maxWidth=ue,this._update(),this}setDOMContent(ue){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(ue),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(ue){return this._container&&this._container.classList.add(ue),this}removeClassName(ue){return this._container&&this._container.classList.remove(ue),this}setOffset(ue){return this.options.offset=ue,this._update(),this}toggleClassName(ue){if(this._container)return this._container.classList.toggle(ue)}setSubpixelPositioning(ue){this.options.subpixelPositioning=ue}_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 ue=this._container.querySelector(Vc);ue&&ue.focus()}},i.RasterDEMTileSource=Zt,i.RasterTileSource=pt,i.ScaleControl=class{constructor(ue){this._onMove=()=>{Ac(this._map,this._container,this.options)},this.setUnit=w=>{this.options.unit=w,Ac(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},xu),ue)}getDefaultPosition(){return\"bottom-left\"}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",ue.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=Kr,i.Style=Ga,i.TerrainControl=class{constructor(ue){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=ue}onAdd(ue){return this._map=ue,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=Bc,i.TwoFingersTouchRotateHandler=cf,i.TwoFingersTouchZoomHandler=vu,i.TwoFingersTouchZoomRotateHandler=Yi,i.VectorTileSource=ut,i.VideoSource=Nt,i.addSourceType=(ue,w)=>a._(void 0,void 0,void 0,function*(){if(wr(ue))throw new Error(`A source type called \"${ue}\" already exists.`);((B,Q)=>{sr[B]=Q})(ue,w)}),i.clearPrewarmedResources=function(){let ue=me;ue&&(ue.isPreloaded()&&ue.numActive()===1?(ue.release(_e),me=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 Qt().getRTLTextPluginStatus()},i.getVersion=function(){return Ku},i.getWorkerCount=function(){return Ee.workerCount},i.getWorkerUrl=function(){return a.a.WORKER_URL},i.importScriptInWorkers=function(ue){return Ae().broadcast(\"IS\",ue)},i.prewarm=function(){Se().acquire(_e)},i.setMaxParallelImageRequests=function(ue){a.a.MAX_PARALLEL_IMAGE_REQUESTS=ue},i.setRTLTextPlugin=function(ue,w){return Qt().setRTLTextPlugin(ue,w)},i.setWorkerCount=function(ue){Ee.workerCount=ue},i.setWorkerUrl=function(ue){a.a.WORKER_URL=ue}});var n=e;return n})});var cje=ye((Ebr,uje)=>{\"use strict\";var nw=Dr(),AXt=ru().sanitizeHTML,SXt=AJ(),oje=wx();function sje(e,t){this.subplot=e,this.uid=e.uid+\"-\"+t,this.index=t,this.idSource=\"source-\"+this.uid,this.idLayer=oje.layoutLayerPrefix+this.uid,this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var ag=sje.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=u7(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,!!u7(e)){var r=MXt(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 lje(e){var t={},r={};switch(e.type){case\"circle\":nw.extendFlat(r,{\"circle-radius\":e.circle.radius,\"circle-color\":e.color,\"circle-opacity\":e.opacity});break;case\"line\":nw.extendFlat(r,{\"line-width\":e.line.width,\"line-color\":e.color,\"line-opacity\":e.opacity,\"line-dasharray\":e.line.dash});break;case\"fill\":nw.extendFlat(r,{\"fill-color\":e.color,\"fill-outline-color\":e.fill.outlinecolor,\"fill-opacity\":e.opacity});break;case\"symbol\":var n=e.symbol,i=SXt(n.textposition,n.iconsize);nw.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}),nw.extendFlat(r,{\"icon-color\":e.color,\"text-color\":n.textfont.color,\"text-opacity\":e.opacity});break;case\"raster\":nw.extendFlat(r,{\"raster-fade-duration\":0,\"raster-opacity\":e.opacity});break}return{layout:t,paint:r}}function MXt(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=AXt(e.sourceattribution)),n}uje.exports=function(t,r,n){var i=new sje(t,r);return i.update(n),i}});var yje=ye((kbr,mje)=>{\"use strict\";var LJ=aje(),PJ=Dr(),dje=ix(),fje=qa(),EXt=ho(),kXt=yv(),c7=vf(),vje=Mg(),CXt=vje.drawMode,LXt=vje.selectMode,PXt=Of().prepSelect,IXt=Of().clearOutline,RXt=Of().clearSelectionsCache,DXt=Of().selectOnClick,aw=wx(),FXt=cje();function pje(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 Uh=pje.prototype;Uh.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)};Uh.createMap=function(e,t,r,n){var i=this,a=t[i.id],o=i.styleObj=gje(a.style),s=a.bounds,l=s?[[s.west,s.south],[s.east,s.north]]:null,u=i.map=new LJ.Map({container:i.div,style:o.style,center:IJ(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 LJ.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(dje.fetchTraceGeoData(e)),Promise.all(f).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.updateMap=function(e,t,r,n){var i=this,a=i.map,o=t[this.id];i.rejectOnError(n);var s=[],l=gje(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(dje.fetchTraceGeoData(e)),Promise.all(s).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.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&&DXt(l.originalEvent,n,[r.xaxis],[r.yaxis],r.id,s),u.indexOf(\"event\")>-1&&c7.click(n,l.originalEvent)}}};Uh.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=PJ.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),LXt(a)||CXt(a)?(r.dragPan.disable(),r.on(\"zoomstart\",t.clearOutline),t.dragOptions.prepFn=function(l,u,c){PXt(l,u,c,t.dragOptions,a)},kXt.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))};Uh.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])};Uh.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 RJ=Dr(),OXt=k_(),qXt=Yd(),_je=jk();xje.exports=function(t,r,n){OXt(t,r,n,{type:\"map\",attributes:_je,handleDefaults:BXt,partition:\"y\"})};function BXt(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,qXt(e,t,{name:\"layers\",handleItemDefaults:NXt}),t._input=e}function NXt(e,t){function r(l,u){return RJ.coerce(e,t,_je.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\",RJ.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\"),RJ.coerceFont(r,\"symbol.textfont\",void 0,{noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0}),r(\"symbol.textposition\"),r(\"symbol.placement\"))}}});var h7=ye(l0=>{\"use strict\";var f7=Dr(),wje=f7.strTranslate,UXt=f7.strScale,VXt=Id().getSubplotCalcData,GXt=Wp(),HXt=Oa(),Tje=So(),jXt=ru(),WXt=yje(),Tx=\"map\";l0.name=Tx;l0.attr=\"subplot\";l0.idRoot=Tx;l0.idRegex=l0.attrRegex=f7.counterRegex(Tx);l0.attributes={subplot:{valType:\"subplotid\",dflt:\"map\",editType:\"calc\"}};l0.layoutAttributes=jk();l0.supplyLayoutDefaults=bje();l0.plot=function(t){for(var r=t._fullLayout,n=t.calcdata,i=r._subplots[Tx],a=0;a_/2){var b=f.split(\"|\").join(\"
\");d.text(b).attr(\"data-unformatted\",b).call(jXt.convertToTspans,e),v=Tje.bBox(d.node())}d.attr(\"transform\",wje(-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 p=1;v.width+6>_&&(p=_/(v.width+6));var k=[n.l+n.w*o.x[1],n.t+n.h*(1-o.y[0])];h.attr(\"transform\",wje(k[0],k[1])+UXt(p))}};l0.updateFx=function(e){for(var t=e._fullLayout,r=t._subplots[Tx],n=0;n{\"use strict\";Aje.exports={attributes:i7(),supplyDefaults:OHe(),colorbar:$d(),formatLabels:TJ(),calc:vF(),plot:JHe(),hoverPoints:l7().hoverPoints,eventData:tje(),selectPoints:ije(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.update(t)}},moduleType:\"trace\",name:\"scattermap\",basePlotModule:h7(),categories:[\"map\",\"gl\",\"symbols\",\"showLegend\",\"scatter-like\"],meta:{}}});var Eje=ye((Ibr,Mje)=>{\"use strict\";Mje.exports=Sje()});var DJ=ye((Rbr,kje)=>{\"use strict\";var d1=e5(),XXt=Tu(),{hovertemplateAttrs:ZXt,templatefallbackAttrs:YXt}=Ll(),KXt=Gl(),Ax=Ao().extendFlat;kje.exports=Ax({locations:{valType:\"data_array\",editType:\"calc\"},z:{valType:\"data_array\",editType:\"calc\"},geojson:{valType:\"any\",editType:\"calc\"},featureidkey:Ax({},d1.featureidkey,{}),below:{valType:\"string\",editType:\"plot\"},text:d1.text,hovertext:d1.hovertext,marker:{line:{color:Ax({},d1.marker.line.color,{editType:\"plot\"}),width:Ax({},d1.marker.line.width,{editType:\"plot\"}),editType:\"calc\"},opacity:Ax({},d1.marker.opacity,{editType:\"plot\"}),editType:\"calc\"},selected:{marker:{opacity:Ax({},d1.selected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},unselected:{marker:{opacity:Ax({},d1.unselected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},hoverinfo:d1.hoverinfo,hovertemplate:ZXt({},{keys:[\"properties\"]}),hovertemplatefallback:YXt(),showlegend:Ax({},KXt.showlegend,{dflt:!1})},XXt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Lje=ye((Dbr,Cje)=>{\"use strict\";var Yk=Dr(),JXt=Qh(),$Xt=DJ();Cje.exports=function(t,r,n,i){function a(c,f){return Yk.coerce(t,r,$Xt,c,f)}var o=a(\"locations\"),s=a(\"z\"),l=a(\"geojson\");if(!Yk.isArrayOrTypedArray(o)||!o.length||!Yk.isArrayOrTypedArray(s)||!s.length||!(typeof l==\"string\"&&l!==\"\"||Yk.isPlainObject(l))){r.visible=!1;return}a(\"featureidkey\"),r._length=Math.min(o.length,s.length),a(\"below\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\");var u=a(\"marker.line.width\");u&&a(\"marker.line.color\"),a(\"marker.opacity\"),JXt(t,r,i,a,{prefix:\"\",cLetter:\"z\"}),Yk.coerceSelectionMarkerOpacity(r,a)}});var FJ=ye((Fbr,Rje)=>{\"use strict\";var QXt=Eo(),v1=Dr(),eZt=tc(),tZt=So(),rZt=tx().makeBlank,Pje=ix();function iZt(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:rZt()};if(!r)return a;var o=Pje.extractTraceFeature(e);if(!o)return a;var s=eZt.makeColorScaleFuncFromTrace(t),l=t.marker,u=l.line||{},c;v1.isArrayOrTypedArray(l.opacity)&&(c=function(k){var E=k.mo;return QXt(E)?+v1.constrain(E,0,1):0});var f;v1.isArrayOrTypedArray(u.color)&&(f=function(k){return k.mlc});var h;v1.isArrayOrTypedArray(u.width)&&(h=function(k){return k.mlw});for(var d=0;d{\"use strict\";var Fje=FJ().convert,nZt=FJ().convertOnSelect,Dje=wx().traceLayerPrefix;function zje(e,t){this.type=\"choroplethmap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"fill\",Dje+t+\"-fill\"],[\"line\",Dje+t+\"-line\"]],this.below=null}var C5=zje.prototype;C5.update=function(e){this._update(Fje(e)),e[0].trace._glTrace=this};C5.updateOnSelect=function(e){this._update(nZt(e))};C5._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])};C5.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};Oje.exports=function(t,r){var n=r[0].trace,i=new zje(t,n.uid),a=i.sourceId,o=Fje(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 Nje=ye((Obr,Bje)=>{\"use strict\";Bje.exports={attributes:DJ(),supplyDefaults:Lje(),colorbar:S_(),calc:FF(),plot:qje(),hoverPoints:OF(),eventData:qF(),selectPoints:BF(),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\";Uje.exports=Nje()});var OJ=ye((Bbr,Hje)=>{\"use strict\";var aZt=Tu(),{hovertemplateAttrs:oZt,templatefallbackAttrs:sZt}=Ll(),Gje=Gl(),d7=i7(),zJ=Ao().extendFlat;Hje.exports=zJ({lon:d7.lon,lat:d7.lat,z:{valType:\"data_array\",editType:\"calc\"},radius:{valType:\"number\",editType:\"plot\",arrayOk:!0,min:1,dflt:30},below:{valType:\"string\",editType:\"plot\"},text:d7.text,hovertext:d7.hovertext,hoverinfo:zJ({},Gje.hoverinfo,{flags:[\"lon\",\"lat\",\"z\",\"text\",\"name\"]}),hovertemplate:oZt(),hovertemplatefallback:sZt(),showlegend:zJ({},Gje.showlegend,{dflt:!1})},aZt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Wje=ye((Nbr,jje)=>{\"use strict\";var lZt=Dr(),uZt=Qh(),cZt=OJ();jje.exports=function(t,r,n,i){function a(u,c){return lZt.coerce(t,r,cZt,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\"),a(\"hovertemplatefallback\"),uZt(t,r,i,a,{prefix:\"\",cLetter:\"z\"})}});var Yje=ye((Ubr,Zje)=>{\"use strict\";var qJ=Eo(),fZt=Dr().isArrayOrTypedArray,BJ=fs().BADNUM,hZt=gv(),Xje=Dr()._;Zje.exports=function(t,r){for(var n=r._length,i=new Array(n),a=r.z,o=fZt(a)&&a.length,s=0;s{\"use strict\";var dZt=Eo(),NJ=Dr(),Kje=ka(),Jje=tc(),$je=fs().BADNUM,vZt=tx().makeBlank;Qje.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:vZt()};if(!n)return a;var o=[],s,l=r.z,u=r.radius,c=NJ.isArrayOrTypedArray(l)&&l.length,f=NJ.isArrayOrTypedArray(u);for(s=0;s0?+u[s]:0),o.push({type:\"Feature\",geometry:{type:\"Point\",coordinates:d},properties:v})}}var b=Jje.extractOpts(r),p=b.reversescale?Jje.flipScale(b.colorscale):b.colorscale,k=p[0][1],E=Kje.opacity(k)<1?k:Kje.addOpacity(k,0),S=[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,E];for(s=1;s{\"use strict\";var tWe=eWe(),pZt=wx().traceLayerPrefix;function rWe(e,t){this.type=\"densitymap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"heatmap\",pZt+t+\"-heatmap\"]],this.below=null}var v7=rWe.prototype;v7.update=function(e){var t=this.subplot,r=this.layerList,n=tWe(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])};v7.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};iWe.exports=function(t,r){var n=r[0].trace,i=new rWe(t,n.uid),a=i.sourceId,o=tWe(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 oWe=ye((Hbr,aWe)=>{\"use strict\";var gZt=ho(),mZt=l7().hoverPoints,yZt=l7().getExtraText;aWe.exports=function(t,r,n){var i=mZt(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=gZt.tickText(u,u.c2l(l.z),\"hover\").text}return a.extraText=yZt(s,l,o[0].t.labels),[a]}}});var lWe=ye((jbr,sWe)=>{\"use strict\";sWe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t.z=r.z,t}});var cWe=ye((Wbr,uWe)=>{\"use strict\";uWe.exports={attributes:OJ(),supplyDefaults:Wje(),colorbar:S_(),formatLabels:TJ(),calc:Yje(),plot:nWe(),hoverPoints:oWe(),eventData:lWe(),getBelow:function(e,t){for(var r=t.getMapLayers(),n=0;n{\"use strict\";fWe.exports=cWe()});var VJ=ye((Ybr,mWe)=>{\"use strict\";var _Zt=ec(),xZt=Gl(),dWe=Lh(),UJ=n3(),bZt=Cc().attributes,{hovertemplateAttrs:vWe,templatefallbackAttrs:pWe}=Ll(),wZt=Tu(),TZt=vl().templatedArray,AZt=df().descriptionOnlyNumbers,gWe=Ao().extendFlat,SZt=mc().overrideAll,Zbr=mWe.exports=SZt({hoverinfo:gWe({},xZt.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:UJ.hoverlabel,domain:bZt({name:\"sankey\",trace:!0}),orientation:{valType:\"enumerated\",values:[\"v\",\"h\"],dflt:\"h\"},valueformat:{valType:\"string\",dflt:\".3s\",description:AZt(\"value\")},valuesuffix:{valType:\"string\",dflt:\"\"},arrangement:{valType:\"enumerated\",values:[\"snap\",\"perpendicular\",\"freeform\",\"fixed\"],dflt:\"snap\"},textfont:_Zt({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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),colorscales:TZt(\"concentrationscales\",{editType:\"calc\",label:{valType:\"string\",editType:\"calc\",dflt:\"\"},cmax:{valType:\"number\",editType:\"calc\",dflt:1},cmin:{valType:\"number\",editType:\"calc\",dflt:0},colorscale:gWe(wZt().colorscale,{dflt:[[0,\"white\"],[1,\"black\"]]})})}},\"calc\",\"nested\")});var wWe=ye((Kbr,bWe)=>{\"use strict\";var L5=Dr(),p7=VJ(),MZt=ka(),yWe=cd(),EZt=Cc().defaults,_We=fM(),xWe=vl(),kZt=Yd();bWe.exports=function(t,r,n,i){function a(S,L){return L5.coerce(t,r,p7,S,L)}var o=L5.extendDeep(i.hoverlabel,t.hoverlabel),s=t.node,l=xWe.newContainer(r,\"node\");function u(S,L){return L5.coerce(s,l,p7.node,S,L)}u(\"label\"),u(\"groups\"),u(\"x\"),u(\"y\"),u(\"pad\"),u(\"thickness\"),u(\"line.color\"),u(\"line.width\"),u(\"hoverinfo\",t.hoverinfo),_We(s,l,u,o),u(\"hovertemplate\"),u(\"align\");var c=i.colorway,f=function(S){return c[S%c.length]};u(\"color\",l.label.map(function(S,L){return MZt.addOpacity(f(L),.8)})),u(\"customdata\");var h=t.link||{},d=xWe.newContainer(r,\"link\");function v(S,L){return L5.coerce(h,d,p7.link,S,L)}v(\"label\"),v(\"arrowlen\"),v(\"source\"),v(\"target\"),v(\"value\"),v(\"line.color\"),v(\"line.width\"),v(\"hoverinfo\",t.hoverinfo),_We(h,d,v,o),v(\"hovertemplate\");var _=yWe(i.paper_bgcolor).getLuminance()<.333,b=_?\"rgba(255, 255, 255, 0.6)\":\"rgba(0, 0, 0, 0.2)\",p=v(\"color\",b);function k(S){var L=yWe(S);if(!L.isValid())return S;var x=L.getAlpha();return x<=.8?L.setAlpha(x+.2):L=_?L.brighten():L.darken(),L.toRgbString()}v(\"hovercolor\",Array.isArray(p)?p.map(k):k(p)),v(\"customdata\"),kZt(h,d,{name:\"colorscales\",handleItemDefaults:CZt}),EZt(r,i,a),a(\"orientation\"),a(\"valueformat\"),a(\"valuesuffix\");var E;l.x.length&&l.y.length&&(E=\"freeform\"),a(\"arrangement\",E),L5.coerceFont(a,\"textfont\",i.font,{autoShadowDflt:!0}),r._length=null};function CZt(e,t){function r(n,i){return L5.coerce(e,t,p7.link.colorscales,n,i)}r(\"label\"),r(\"cmin\"),r(\"cmax\"),r(\"colorscale\")}});var GJ=ye((Jbr,TWe)=>{\"use strict\";TWe.exports=LZt;function LZt(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=k[k.length-1];var E=e[b];if(a[b]=0&&s[b].push(o[L])}a[b]=S}else{if(n[b]===r[b]){for(var x=[],C=[],M=0,S=p.length-1;S>=0;--S){var g=p[S];if(i[g]=!1,x.push(g),C.push(s[g]),M+=s[g].length,o[g]=c.length,g===b){p.length=S;break}}c.push(x);for(var P=new Array(M),S=0;S{\"use strict\";var PZt=GJ(),P5=Dr(),IZt=Jm().wrap,Kk=P5.isArrayOrTypedArray,AWe=P5.isIndex,SWe=tc();function RZt(e){var t=e.node,r=e.link,n=[],i=Kk(r.color),a=Kk(r.hovercolor),o=Kk(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 _=v+1;e.node._count=_;var b,p=e.node.groups,k={};for(c=0;c0&&AWe(M,_)&&AWe(g,_)&&!(k.hasOwnProperty(M)&&k.hasOwnProperty(g)&&k[M]===k[g])){k.hasOwnProperty(g)&&(g=k[g]),k.hasOwnProperty(M)&&(M=k[M]),M=+M,g=+g,s[M]=s[g]=!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:g,value:+C}),x.source.push(M),x.target.push(g)}}var z=_+p.length,O=Kk(t.color),V=Kk(t.customdata),G=[];for(c=0;c_-1,childrenNodes:[],pointNumber:c,label:Z,color:O?t.color[c]:t.color,customdata:V?t.customdata[c]:t.customdata})}var H=!1;return DZt(z,x.source,x.target)&&(H=!0),{circular:H,links:n,nodes:G,groups:p,groupLookup:k}}function DZt(e,t,r){for(var n=P5.init2dArray(e,0),i=0;i1})}MWe.exports=function(t,r){var n=RZt(r);return IZt({circular:n.circular,_nodes:n.nodes,_links:n.links,_groups:n.groups,_groupLookup:n.groupLookup})}});var CWe=ye((g7,kWe)=>{(function(e,t){typeof g7==\"object\"&&typeof kWe!=\"undefined\"?t(g7):(e=e||self,t(e.d3=e.d3||{}))})(g7,function(e){\"use strict\";function t(C){var M=+this._x.call(null,C),g=+this._y.call(null,C);return r(this.cover(M,g),M,g,C)}function r(C,M,g,P){if(isNaN(M)||isNaN(g))return C;var T,z=C._root,O={data:P},V=C._x0,G=C._y0,Z=C._x1,H=C._y1,N,j,re,oe,_e,Ee,Ce,me;if(!z)return C._root=O,C;for(;z.length;)if((_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j,T=z,!(z=z[Ce=Ee<<1|_e]))return T[Ce]=O,C;if(re=+C._x.call(null,z.data),oe=+C._y.call(null,z.data),M===re&&g===oe)return O.next=z,T?T[Ce]=O:C._root=O,C;do T=T?T[Ce]=new Array(4):C._root=new Array(4),(_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j;while((Ce=Ee<<1|_e)===(me=(oe>=j)<<1|re>=N));return T[me]=z,T[Ce]=O,C}function n(C){var M,g,P=C.length,T,z,O=new Array(P),V=new Array(P),G=1/0,Z=1/0,H=-1/0,N=-1/0;for(g=0;gH&&(H=T),zN&&(N=z));if(G>H||Z>N)return this;for(this.cover(G,Z).cover(H,N),g=0;gC||C>=T||P>M||M>=z;)switch(Z=(MH||(V=oe.y0)>N||(G=oe.x1)=Ce)<<1|C>=Ee)&&(oe=j[j.length-1],j[j.length-1]=j[j.length-1-_e],j[j.length-1-_e]=oe)}else{var me=C-+this._x.call(null,re.data),ie=M-+this._y.call(null,re.data),Se=me*me+ie*ie;if(Se=(j=(O+G)/2))?O=j:G=j,(_e=N>=(re=(V+Z)/2))?V=re:Z=re,M=g,!(g=g[Ee=_e<<1|oe]))return this;if(!g.length)break;(M[Ee+1&3]||M[Ee+2&3]||M[Ee+3&3])&&(P=M,Ce=Ee)}for(;g.data!==C;)if(T=g,!(g=g.next))return this;return(z=g.next)&&delete g.next,T?(z?T.next=z:delete T.next,this):M?(z?M[Ee]=z:delete M[Ee],(g=M[0]||M[1]||M[2]||M[3])&&g===(M[3]||M[2]||M[1]||M[0])&&!g.length&&(P?P[Ce]=g:this._root=g),this):(this._root=z,this)}function c(C){for(var M=0,g=C.length;M{(function(e,t){t(typeof m7==\"object\"&&typeof LWe!=\"undefined\"?m7:e.d3=e.d3||{})})(m7,function(e){\"use strict\";var t=\"$\";function r(){}r.prototype=n.prototype={constructor:r,has:function(_){return t+_ in this},get:function(_){return this[t+_]},set:function(_,b){return this[t+_]=b,this},remove:function(_){var b=t+_;return b in this&&delete this[b]},clear:function(){for(var _ in this)_[0]===t&&delete this[_]},keys:function(){var _=[];for(var b in this)b[0]===t&&_.push(b.slice(1));return _},values:function(){var _=[];for(var b in this)b[0]===t&&_.push(this[b]);return _},entries:function(){var _=[];for(var b in this)b[0]===t&&_.push({key:b.slice(1),value:this[b]});return _},size:function(){var _=0;for(var b in this)b[0]===t&&++_;return _},empty:function(){for(var _ in this)if(_[0]===t)return!1;return!0},each:function(_){for(var b in this)b[0]===t&&_(this[b],b.slice(1),this)}};function n(_,b){var p=new r;if(_ instanceof r)_.each(function(x,C){p.set(C,x)});else if(Array.isArray(_)){var k=-1,E=_.length,S;if(b==null)for(;++k=_.length)return p!=null&&x.sort(p),k!=null?k(x):x;for(var P=-1,T=x.length,z=_[C++],O,V,G=n(),Z,H=M();++P_.length)return x;var M,g=b[C-1];return k!=null&&C>=_.length?M=x.entries():(M=[],x.each(function(P,T){M.push({key:T,values:L(P,C)})})),g!=null?M.sort(function(P,T){return g(P.key,T.key)}):M}return E={object:function(x){return S(x,0,a,o)},map:function(x){return S(x,0,s,l)},entries:function(x){return L(S(x,0,s,l),0)},key:function(x){return _.push(x),E},sortKeys:function(x){return b[_.length-1]=x,E},sortValues:function(x){return p=x,E},rollup:function(x){return k=x,E}}}function a(){return{}}function o(_,b,p){_[b]=p}function s(){return n()}function l(_,b,p){_.set(b,p)}function u(){}var c=n.prototype;u.prototype=f.prototype={constructor:u,has:c.has,add:function(_){return _+=\"\",this[t+_]=_,this},remove:c.remove,clear:c.clear,values:c.keys,size:c.size,empty:c.empty,each:c.each};function f(_,b){var p=new u;if(_ instanceof u)_.each(function(S){p.add(S)});else if(_){var k=-1,E=_.length;if(b==null)for(;++k{(function(e,t){typeof _7==\"object\"&&typeof PWe!=\"undefined\"?t(_7):(e=e||self,t(e.d3=e.d3||{}))})(_7,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 x7==\"object\"&&typeof RWe!=\"undefined\"?t(x7):(e=e||self,t(e.d3=e.d3||{}))})(x7,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=_.prototype={constructor:v,restart:function(C,M,g){if(typeof C!=\"function\")throw new TypeError(\"callback is not a function\");g=(g==null?h():+g)+(M==null?0:+M),!this._next&&o!==this&&(o?o._next=this:a=this,o=this),this._call=C,this._time=g,S()},stop:function(){this._call&&(this._call=null,this._time=1/0,S())}};function _(C,M,g){var P=new v;return P.restart(C,M,g),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 p(){l=(s=c.now())+u,t=r=0;try{b()}finally{t=0,E(),l=0}}function k(){var C=c.now(),M=C-s;M>i&&(u-=M,s=C)}function E(){for(var C,M=a,g,P=1/0;M;)M._call?(P>M._time&&(P=M._time),C=M,M=M._next):(g=M._next,M._next=null,M=C?C._next=g:a=g);o=C,S(P)}function S(C){if(!t){r&&(r=clearTimeout(r));var M=C-l;M>24?(C<1/0&&(r=setTimeout(p,C-c.now()-u)),n&&(n=clearInterval(n))):(n||(s=c.now(),n=setInterval(k,i)),t=1,f(p))}}function L(C,M,g){var P=new v;return M=M==null?0:+M,P.restart(function(T){P.stop(),C(T+M)},M,g),P}function x(C,M,g){var P=new v,T=M;return M==null?(P.restart(C,M,g),P):(M=+M,g=g==null?h():+g,P.restart(function z(O){O+=T,P.restart(z,T+=M,g),C(O)},M,g),P)}e.interval=x,e.now=h,e.timeout=L,e.timer=_,e.timerFlush=b,Object.defineProperty(e,\"__esModule\",{value:!0})})});var zWe=ye((b7,FWe)=>{(function(e,t){typeof b7==\"object\"&&typeof FWe!=\"undefined\"?t(b7,CWe(),y7(),IWe(),DWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(b7,function(e,t,r,n,i){\"use strict\";function a(C,M){var g;C==null&&(C=0),M==null&&(M=0);function P(){var T,z=g.length,O,V=0,G=0;for(T=0;TN.index){var Re=j-Fe.x-Fe.vx,ce=re-Fe.y-Fe.vy,Ze=Re*Re+ce*ce;Zej+ge||Lere+ge||AeG.r&&(G.r=G[Z].r)}function V(){if(M){var G,Z=M.length,H;for(g=new Array(Z),G=0;G1?(_e==null?V.remove(oe):V.set(oe,re(_e)),M):V.get(oe)},find:function(oe,_e,Ee){var Ce=0,me=C.length,ie,Se,Le,Ae,Fe;for(Ee==null?Ee=1/0:Ee*=Ee,Ce=0;Ce1?(Z.on(oe,_e),M):Z.on(oe)}}}function E(){var C,M,g,P=o(-30),T,z=1,O=1/0,V=.81;function G(j){var re,oe=C.length,_e=t.quadtree(C,v,_).visitAfter(H);for(g=j,re=0;re=O)return;(j.data!==M||j.next)&&(Ee===0&&(Ee=s(),ie+=Ee*Ee),Ce===0&&(Ce=s(),ie+=Ce*Ce),ie{(function(e,t){typeof w7==\"object\"&&typeof OWe!=\"undefined\"?t(w7):(e=e||self,t(e.d3=e.d3||{}))})(w7,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,_=c-l,b=h-s,p=d-l,k=b*b+p*p;if(f<0)throw new Error(\"negative radius: \"+f);if(this._x1===null)this._+=\"M\"+(this._x1=s)+\",\"+(this._y1=l);else if(k>n)if(!(Math.abs(p*v-_*b)>n)||!f)this._+=\"L\"+(this._x1=s)+\",\"+(this._y1=l);else{var E=u-h,S=c-d,L=v*v+_*_,x=E*E+S*S,C=Math.sqrt(L),M=Math.sqrt(k),g=f*Math.tan((t-Math.acos((L+k-x)/(2*C*M)))/2),P=g/M,T=g/C;Math.abs(P-1)>n&&(this._+=\"L\"+(s+P*b)+\",\"+(l+P*p)),this._+=\"A\"+f+\",\"+f+\",0,0,\"+ +(p*E>b*S)+\",\"+(this._x1=s+T*v)+\",\"+(this._y1=l+T*_)}},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),_=s+d,b=l+v,p=1^h,k=h?c-f:f-c;if(u<0)throw new Error(\"negative radius: \"+u);this._x1===null?this._+=\"M\"+_+\",\"+b:(Math.abs(this._x1-_)>n||Math.abs(this._y1-b)>n)&&(this._+=\"L\"+_+\",\"+b),u&&(k<0&&(k=k%r+r),k>i?this._+=\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(s-d)+\",\"+(l-v)+\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(this._x1=_)+\",\"+(this._y1=b):k>n&&(this._+=\"A\"+u+\",\"+u+\",0,\"+ +(k>=t)+\",\"+p+\",\"+(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 HJ=ye((T7,BWe)=>{(function(e,t){typeof T7==\"object\"&&typeof BWe!=\"undefined\"?t(T7,qWe()):(e=e||self,t(e.d3=e.d3||{},e.d3))})(T7,function(e,t){\"use strict\";function r(Mt){return function(){return Mt}}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(Mt){return Mt>1?0:Mt<-1?f:Math.acos(Mt)}function _(Mt){return Mt>=1?h:Mt<=-1?-h:Math.asin(Mt)}function b(Mt){return Mt.innerRadius}function p(Mt){return Mt.outerRadius}function k(Mt){return Mt.startAngle}function E(Mt){return Mt.endAngle}function S(Mt){return Mt&&Mt.padAngle}function L(Mt,kr,Jr,vi,hn,An,Mn,Li){var _n=Jr-Mt,ya=vi-kr,Jn=Mn-hn,Ma=Li-An,_o=Ma*_n-Jn*ya;if(!(_o*_oZl*Zl+Su*Su&&(As=Ks,cl=zs),{cx:As,cy:cl,x01:-Jn,y01:-Ma,x11:As*(hn/zl-1),y11:cl*(hn/zl-1)}}function C(){var Mt=b,kr=p,Jr=r(0),vi=null,hn=k,An=E,Mn=S,Li=null;function _n(){var ya,Jn,Ma=+Mt.apply(this,arguments),_o=+kr.apply(this,arguments),No=hn.apply(this,arguments)-h,po=An.apply(this,arguments)-h,Lo=n(po-No),ko=po>No;if(Li||(Li=ya=t.path()),_oc))Li.moveTo(0,0);else if(Lo>d-c)Li.moveTo(_o*a(No),_o*l(No)),Li.arc(0,0,_o,No,po,!ko),Ma>c&&(Li.moveTo(Ma*a(po),Ma*l(po)),Li.arc(0,0,Ma,po,No,ko));else{var Ds=No,Fs=po,ll=No,ul=po,zl=Lo,us=Lo,il=Mn.apply(this,arguments)/2,As=il>c&&(vi?+vi.apply(this,arguments):u(Ma*Ma+_o*_o)),cl=s(n(_o-Ma)/2,+Jr.apply(this,arguments)),Ks=cl,zs=cl,Io,ls;if(As>c){var Zl=_(As/Ma*l(il)),Su=_(As/_o*l(il));(zl-=Zl*2)>c?(Zl*=ko?1:-1,ll+=Zl,ul-=Zl):(zl=0,ll=ul=(No+po)/2),(us-=Su*2)>c?(Su*=ko?1:-1,Ds+=Su,Fs-=Su):(us=0,Ds=Fs=(No+po)/2)}var nc=_o*a(Ds),bs=_o*l(Ds),Rn=Ma*a(ul),_a=Ma*l(ul);if(cl>c){var Vu=_o*a(Fs),Ol=_o*l(Fs),xo=Ma*a(ll),Yl=Ma*l(ll),Ns;if(Loc?zs>c?(Io=x(xo,Yl,nc,bs,_o,zs,ko),ls=x(Vu,Ol,Rn,_a,_o,zs,ko),Li.moveTo(Io.cx+Io.x01,Io.cy+Io.y01),zsc)||!(zl>c)?Li.lineTo(Rn,_a):Ks>c?(Io=x(Rn,_a,Vu,Ol,Ma,-Ks,ko),ls=x(nc,bs,xo,Yl,Ma,-Ks,ko),Li.lineTo(Io.cx+Io.x01,Io.cy+Io.y01),Ks=_o;--No)Li.point(Fs[No],ll[No]);Li.lineEnd(),Li.areaEnd()}ko&&(Fs[Ma]=+Mt(Lo,Ma,Jn),ll[Ma]=+Jr(Lo,Ma,Jn),Li.point(kr?+kr(Lo,Ma,Jn):Fs[Ma],vi?+vi(Lo,Ma,Jn):ll[Ma]))}if(Ds)return Li=null,Ds+\"\"||null}function ya(){return z().defined(hn).curve(Mn).context(An)}return _n.x=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),kr=null,_n):Mt},_n.x0=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),_n):Mt},_n.x1=function(Jn){return arguments.length?(kr=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):kr},_n.y=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),vi=null,_n):Jr},_n.y0=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),_n):Jr},_n.y1=function(Jn){return arguments.length?(vi=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):vi},_n.lineX0=_n.lineY0=function(){return ya().x(Mt).y(Jr)},_n.lineY1=function(){return ya().x(Mt).y(vi)},_n.lineX1=function(){return ya().x(kr).y(Jr)},_n.defined=function(Jn){return arguments.length?(hn=typeof Jn==\"function\"?Jn:r(!!Jn),_n):hn},_n.curve=function(Jn){return arguments.length?(Mn=Jn,An!=null&&(Li=Mn(An)),_n):Mn},_n.context=function(Jn){return arguments.length?(Jn==null?An=Li=null:Li=Mn(An=Jn),_n):An},_n}function V(Mt,kr){return krMt?1:kr>=Mt?0:NaN}function G(Mt){return Mt}function Z(){var Mt=G,kr=V,Jr=null,vi=r(0),hn=r(d),An=r(0);function Mn(Li){var _n,ya=Li.length,Jn,Ma,_o=0,No=new Array(ya),po=new Array(ya),Lo=+vi.apply(this,arguments),ko=Math.min(d,Math.max(-d,hn.apply(this,arguments)-Lo)),Ds,Fs=Math.min(Math.abs(ko)/ya,An.apply(this,arguments)),ll=Fs*(ko<0?-1:1),ul;for(_n=0;_n0&&(_o+=ul);for(kr!=null?No.sort(function(zl,us){return kr(po[zl],po[us])}):Jr!=null&&No.sort(function(zl,us){return Jr(Li[zl],Li[us])}),_n=0,Ma=_o?(ko-ya*ll)/_o:0;_n0?ul*Ma:0)+ll,po[Jn]={data:Li[Jn],index:_n,value:ul,startAngle:Lo,endAngle:Ds,padAngle:Fs};return po}return Mn.value=function(Li){return arguments.length?(Mt=typeof Li==\"function\"?Li:r(+Li),Mn):Mt},Mn.sortValues=function(Li){return arguments.length?(kr=Li,Jr=null,Mn):kr},Mn.sort=function(Li){return arguments.length?(Jr=Li,kr=null,Mn):Jr},Mn.startAngle=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.endAngle=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.padAngle=function(Li){return arguments.length?(An=typeof Li==\"function\"?Li:r(+Li),Mn):An},Mn}var H=j(g);function N(Mt){this._curve=Mt}N.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(Mt,kr){this._curve.point(kr*Math.sin(Mt),kr*-Math.cos(Mt))}};function j(Mt){function kr(Jr){return new N(Mt(Jr))}return kr._curve=Mt,kr}function re(Mt){var kr=Mt.curve;return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt.curve=function(Jr){return arguments.length?kr(j(Jr)):kr()._curve},Mt}function oe(){return re(z().curve(H))}function _e(){var Mt=O().curve(H),kr=Mt.curve,Jr=Mt.lineX0,vi=Mt.lineX1,hn=Mt.lineY0,An=Mt.lineY1;return Mt.angle=Mt.x,delete Mt.x,Mt.startAngle=Mt.x0,delete Mt.x0,Mt.endAngle=Mt.x1,delete Mt.x1,Mt.radius=Mt.y,delete Mt.y,Mt.innerRadius=Mt.y0,delete Mt.y0,Mt.outerRadius=Mt.y1,delete Mt.y1,Mt.lineStartAngle=function(){return re(Jr())},delete Mt.lineX0,Mt.lineEndAngle=function(){return re(vi())},delete Mt.lineX1,Mt.lineInnerRadius=function(){return re(hn())},delete Mt.lineY0,Mt.lineOuterRadius=function(){return re(An())},delete Mt.lineY1,Mt.curve=function(Mn){return arguments.length?kr(j(Mn)):kr()._curve},Mt}function Ee(Mt,kr){return[(kr=+kr)*Math.cos(Mt-=Math.PI/2),kr*Math.sin(Mt)]}var Ce=Array.prototype.slice;function me(Mt){return Mt.source}function ie(Mt){return Mt.target}function Se(Mt){var kr=me,Jr=ie,vi=P,hn=T,An=null;function Mn(){var Li,_n=Ce.call(arguments),ya=kr.apply(this,_n),Jn=Jr.apply(this,_n);if(An||(An=Li=t.path()),Mt(An,+vi.apply(this,(_n[0]=ya,_n)),+hn.apply(this,_n),+vi.apply(this,(_n[0]=Jn,_n)),+hn.apply(this,_n)),Li)return An=null,Li+\"\"||null}return Mn.source=function(Li){return arguments.length?(kr=Li,Mn):kr},Mn.target=function(Li){return arguments.length?(Jr=Li,Mn):Jr},Mn.x=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.y=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.context=function(Li){return arguments.length?(An=Li==null?null:Li,Mn):An},Mn}function Le(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr=(kr+vi)/2,Jr,kr,hn,vi,hn)}function Ae(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr,Jr=(Jr+hn)/2,vi,Jr,vi,hn)}function Fe(Mt,kr,Jr,vi,hn){var An=Ee(kr,Jr),Mn=Ee(kr,Jr=(Jr+hn)/2),Li=Ee(vi,Jr),_n=Ee(vi,hn);Mt.moveTo(An[0],An[1]),Mt.bezierCurveTo(Mn[0],Mn[1],Li[0],Li[1],_n[0],_n[1])}function Pe(){return Se(Le)}function ge(){return Se(Ae)}function Re(){var Mt=Se(Fe);return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt}var ce={draw:function(Mt,kr){var Jr=Math.sqrt(kr/f);Mt.moveTo(Jr,0),Mt.arc(0,0,Jr,0,d)}},Ze={draw:function(Mt,kr){var Jr=Math.sqrt(kr/5)/2;Mt.moveTo(-3*Jr,-Jr),Mt.lineTo(-Jr,-Jr),Mt.lineTo(-Jr,-3*Jr),Mt.lineTo(Jr,-3*Jr),Mt.lineTo(Jr,-Jr),Mt.lineTo(3*Jr,-Jr),Mt.lineTo(3*Jr,Jr),Mt.lineTo(Jr,Jr),Mt.lineTo(Jr,3*Jr),Mt.lineTo(-Jr,3*Jr),Mt.lineTo(-Jr,Jr),Mt.lineTo(-3*Jr,Jr),Mt.closePath()}},ut=Math.sqrt(1/3),pt=ut*2,Zt={draw:function(Mt,kr){var Jr=Math.sqrt(kr/pt),vi=Jr*ut;Mt.moveTo(0,-Jr),Mt.lineTo(vi,0),Mt.lineTo(0,Jr),Mt.lineTo(-vi,0),Mt.closePath()}},st=.8908130915292852,lt=Math.sin(f/10)/Math.sin(7*f/10),Gt=Math.sin(d/10)*lt,Nt=-Math.cos(d/10)*lt,Jt={draw:function(Mt,kr){var Jr=Math.sqrt(kr*st),vi=Gt*Jr,hn=Nt*Jr;Mt.moveTo(0,-Jr),Mt.lineTo(vi,hn);for(var An=1;An<5;++An){var Mn=d*An/5,Li=Math.cos(Mn),_n=Math.sin(Mn);Mt.lineTo(_n*Jr,-Li*Jr),Mt.lineTo(Li*vi-_n*hn,_n*vi+Li*hn)}Mt.closePath()}},sr={draw:function(Mt,kr){var Jr=Math.sqrt(kr),vi=-Jr/2;Mt.rect(vi,vi,Jr,Jr)}},wr=Math.sqrt(3),cr={draw:function(Mt,kr){var Jr=-Math.sqrt(kr/(wr*3));Mt.moveTo(0,Jr*2),Mt.lineTo(-wr*Jr,-Jr),Mt.lineTo(wr*Jr,-Jr),Mt.closePath()}},$e=-.5,St=Math.sqrt(3)/2,Qt=1/Math.sqrt(12),Vt=(Qt/2+1)*3,_t={draw:function(Mt,kr){var Jr=Math.sqrt(kr/Vt),vi=Jr/2,hn=Jr*Qt,An=vi,Mn=Jr*Qt+Jr,Li=-An,_n=Mn;Mt.moveTo(vi,hn),Mt.lineTo(An,Mn),Mt.lineTo(Li,_n),Mt.lineTo($e*vi-St*hn,St*vi+$e*hn),Mt.lineTo($e*An-St*Mn,St*An+$e*Mn),Mt.lineTo($e*Li-St*_n,St*Li+$e*_n),Mt.lineTo($e*vi+St*hn,$e*hn-St*vi),Mt.lineTo($e*An+St*Mn,$e*Mn-St*An),Mt.lineTo($e*Li+St*_n,$e*_n-St*Li),Mt.closePath()}},It=[ce,Ze,Zt,sr,Jt,cr,_t];function mt(){var Mt=r(ce),kr=r(64),Jr=null;function vi(){var hn;if(Jr||(Jr=hn=t.path()),Mt.apply(this,arguments).draw(Jr,+kr.apply(this,arguments)),hn)return Jr=null,hn+\"\"||null}return vi.type=function(hn){return arguments.length?(Mt=typeof hn==\"function\"?hn:r(hn),vi):Mt},vi.size=function(hn){return arguments.length?(kr=typeof hn==\"function\"?hn:r(+hn),vi):kr},vi.context=function(hn){return arguments.length?(Jr=hn==null?null:hn,vi):Jr},vi}function er(){}function lr(Mt,kr,Jr){Mt._context.bezierCurveTo((2*Mt._x0+Mt._x1)/3,(2*Mt._y0+Mt._y1)/3,(Mt._x0+2*Mt._x1)/3,(Mt._y0+2*Mt._y1)/3,(Mt._x0+4*Mt._x1+kr)/6,(Mt._y0+4*Mt._y1+Jr)/6)}function Tr(Mt){this._context=Mt}Tr.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:lr(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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);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:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Lr(Mt){return new Tr(Mt)}function ti(Mt){this._context=Mt}ti.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x2=Mt,this._y2=kr;break;case 1:this._point=2,this._x3=Mt,this._y3=kr;break;case 2:this._point=3,this._x4=Mt,this._y4=kr,this._context.moveTo((this._x0+4*this._x1+Mt)/6,(this._y0+4*this._y1+kr)/6);break;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Br(Mt){return new ti(Mt)}function Vr(Mt){this._context=Mt}Vr.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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var Jr=(this._x0+4*this._x1+Mt)/6,vi=(this._y0+4*this._y1+kr)/6;this._line?this._context.lineTo(Jr,vi):this._context.moveTo(Jr,vi);break;case 3:this._point=4;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function dt(Mt){return new Vr(Mt)}function Ge(Mt,kr){this._basis=new Tr(Mt),this._beta=kr}Ge.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length-1;if(Jr>0)for(var vi=Mt[0],hn=kr[0],An=Mt[Jr]-vi,Mn=kr[Jr]-hn,Li=-1,_n;++Li<=Jr;)_n=Li/Jr,this._basis.point(this._beta*Mt[Li]+(1-this._beta)*(vi+_n*An),this._beta*kr[Li]+(1-this._beta)*(hn+_n*Mn));this._x=this._y=null,this._basis.lineEnd()},point:function(Mt,kr){this._x.push(+Mt),this._y.push(+kr)}};var Je=function Mt(kr){function Jr(vi){return kr===1?new Tr(vi):new Ge(vi,kr)}return Jr.beta=function(vi){return Mt(+vi)},Jr}(.85);function je(Mt,kr,Jr){Mt._context.bezierCurveTo(Mt._x1+Mt._k*(Mt._x2-Mt._x0),Mt._y1+Mt._k*(Mt._y2-Mt._y0),Mt._x2+Mt._k*(Mt._x1-kr),Mt._y2+Mt._k*(Mt._y1-Jr),Mt._x2,Mt._y2)}function tt(Mt,kr){this._context=Mt,this._k=(1-kr)/6}tt.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:je(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2,this._x1=Mt,this._y1=kr;break;case 2:this._point=3;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xt=function Mt(kr){function Jr(vi){return new tt(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function Ie(Mt,kr){this._context=Mt,this._k=(1-kr)/6}Ie.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xe=function Mt(kr){function Jr(vi){return new Ie(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ke(Mt,kr){this._context=Mt,this._k=(1-kr)/6}ke.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(Mt,kr){switch(Mt=+Mt,kr=+kr,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:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vt=function Mt(kr){function Jr(vi){return new ke(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ir(Mt,kr,Jr){var vi=Mt._x1,hn=Mt._y1,An=Mt._x2,Mn=Mt._y2;if(Mt._l01_a>c){var Li=2*Mt._l01_2a+3*Mt._l01_a*Mt._l12_a+Mt._l12_2a,_n=3*Mt._l01_a*(Mt._l01_a+Mt._l12_a);vi=(vi*Li-Mt._x0*Mt._l12_2a+Mt._x2*Mt._l01_2a)/_n,hn=(hn*Li-Mt._y0*Mt._l12_2a+Mt._y2*Mt._l01_2a)/_n}if(Mt._l23_a>c){var ya=2*Mt._l23_2a+3*Mt._l23_a*Mt._l12_a+Mt._l12_2a,Jn=3*Mt._l23_a*(Mt._l23_a+Mt._l12_a);An=(An*ya+Mt._x1*Mt._l23_2a-kr*Mt._l12_2a)/Jn,Mn=(Mn*ya+Mt._y1*Mt._l23_2a-Jr*Mt._l12_2a)/Jn}Mt._context.bezierCurveTo(vi,hn,An,Mn,Mt._x2,Mt._y2)}function ar(Mt,kr){this._context=Mt,this._alpha=kr}ar.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vr=function Mt(kr){function Jr(vi){return kr?new ar(vi,kr):new tt(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ii(Mt,kr){this._context=Mt,this._alpha=kr}ii.prototype={areaStart:er,areaEnd:er,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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var pi=function Mt(kr){function Jr(vi){return kr?new ii(vi,kr):new Ie(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function $r(Mt,kr){this._context=Mt,this._alpha=kr}$r.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,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:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var di=function Mt(kr){function Jr(vi){return kr?new $r(vi,kr):new ke(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ji(Mt){this._context=Mt}ji.prototype={areaStart:er,areaEnd:er,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(Mt,kr){Mt=+Mt,kr=+kr,this._point?this._context.lineTo(Mt,kr):(this._point=1,this._context.moveTo(Mt,kr))}};function In(Mt){return new ji(Mt)}function wi(Mt){return Mt<0?-1:1}function On(Mt,kr,Jr){var vi=Mt._x1-Mt._x0,hn=kr-Mt._x1,An=(Mt._y1-Mt._y0)/(vi||hn<0&&-0),Mn=(Jr-Mt._y1)/(hn||vi<0&&-0),Li=(An*hn+Mn*vi)/(vi+hn);return(wi(An)+wi(Mn))*Math.min(Math.abs(An),Math.abs(Mn),.5*Math.abs(Li))||0}function qn(Mt,kr){var Jr=Mt._x1-Mt._x0;return Jr?(3*(Mt._y1-Mt._y0)/Jr-kr)/2:kr}function Fn(Mt,kr,Jr){var vi=Mt._x0,hn=Mt._y0,An=Mt._x1,Mn=Mt._y1,Li=(An-vi)/3;Mt._context.bezierCurveTo(vi+Li,hn+Li*kr,An-Li,Mn-Li*Jr,An,Mn)}function ra(Mt){this._context=Mt}ra.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:Fn(this,this._t0,qn(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){var Jr=NaN;if(Mt=+Mt,kr=+kr,!(Mt===this._x1&&kr===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3,Fn(this,qn(this,Jr=On(this,Mt,kr)),Jr);break;default:Fn(this,this._t0,Jr=On(this,Mt,kr));break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr,this._t0=Jr}}};function la(Mt){this._context=new Ut(Mt)}(la.prototype=Object.create(ra.prototype)).point=function(Mt,kr){ra.prototype.point.call(this,kr,Mt)};function Ut(Mt){this._context=Mt}Ut.prototype={moveTo:function(Mt,kr){this._context.moveTo(kr,Mt)},closePath:function(){this._context.closePath()},lineTo:function(Mt,kr){this._context.lineTo(kr,Mt)},bezierCurveTo:function(Mt,kr,Jr,vi,hn,An){this._context.bezierCurveTo(kr,Mt,vi,Jr,An,hn)}};function wt(Mt){return new ra(Mt)}function rr(Mt){return new la(Mt)}function nr(Mt){this._context=Mt}nr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length;if(Jr)if(this._line?this._context.lineTo(Mt[0],kr[0]):this._context.moveTo(Mt[0],kr[0]),Jr===2)this._context.lineTo(Mt[1],kr[1]);else for(var vi=Er(Mt),hn=Er(kr),An=0,Mn=1;Mn=0;--kr)hn[kr]=(Mn[kr]-hn[kr+1])/An[kr];for(An[Jr-1]=(Mt[Jr]+hn[Jr-1])/2,kr=0;kr=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,kr),this._context.lineTo(Mt,kr);else{var Jr=this._x*(1-this._t)+Mt*this._t;this._context.lineTo(Jr,this._y),this._context.lineTo(Jr,kr)}break}}this._x=Mt,this._y=kr}};function Qr(Mt){return new ri(Mt,.5)}function Oi(Mt){return new ri(Mt,0)}function $i(Mt){return new ri(Mt,1)}function tn(Mt,kr){if((Mn=Mt.length)>1)for(var Jr=1,vi,hn,An=Mt[kr[0]],Mn,Li=An.length;Jr=0;)Jr[kr]=kr;return Jr}function yn(Mt,kr){return Mt[kr]}function Sn(){var Mt=r([]),kr=fn,Jr=tn,vi=yn;function hn(An){var Mn=Mt.apply(this,arguments),Li,_n=An.length,ya=Mn.length,Jn=new Array(ya),Ma;for(Li=0;Li0){for(var Jr,vi,hn=0,An=Mt[0].length,Mn;hn0)for(var Jr,vi=0,hn,An,Mn,Li,_n,ya=Mt[kr[0]].length;vi0?(hn[0]=Mn,hn[1]=Mn+=An):An<0?(hn[1]=Li,hn[0]=Li+=An):(hn[0]=0,hn[1]=An)}function ma(Mt,kr){if((hn=Mt.length)>0){for(var Jr=0,vi=Mt[kr[0]],hn,An=vi.length;Jr0)||!((An=(hn=Mt[kr[0]]).length)>0))){for(var Jr=0,vi=1,hn,An,Mn;viAn&&(An=hn,Jr=kr);return Jr}function da(Mt){var kr=Mt.map(Wn);return fn(Mt).sort(function(Jr,vi){return kr[Jr]-kr[vi]})}function Wn(Mt){for(var kr=0,Jr=-1,vi=Mt.length,hn;++Jr{(function(e,t){typeof A7==\"object\"&&typeof NWe!=\"undefined\"?t(A7,nk(),y7(),HJ()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3)})(A7,function(e,t,r,n){\"use strict\";function i(g){return g.target.depth}function a(g){return g.depth}function o(g,P){return P-1-g.height}function s(g,P){return g.sourceLinks.length?g.depth:P-1}function l(g){return g.targetLinks.length?g.depth:g.sourceLinks.length?t.min(g.sourceLinks,i)-1:0}function u(g){return function(){return g}}function c(g,P){return h(g.source,P.source)||g.index-P.index}function f(g,P){return h(g.target,P.target)||g.index-P.index}function h(g,P){return g.y0-P.y0}function d(g){return g.value}function v(g){return(g.y0+g.y1)/2}function _(g){return v(g.source)*g.value}function b(g){return v(g.target)*g.value}function p(g){return g.index}function k(g){return g.nodes}function E(g){return g.links}function S(g,P){var T=g.get(P);if(!T)throw new Error(\"missing: \"+P);return T}var L=function(){var g=0,P=0,T=1,z=1,O=24,V=8,G=p,Z=s,H=k,N=E,j=32,re=2/3;function oe(){var Se={nodes:H.apply(null,arguments),links:N.apply(null,arguments)};return _e(Se),Ee(Se),Ce(Se),me(Se,j),ie(Se),Se}oe.update=function(Se){return ie(Se),Se},oe.nodeId=function(Se){return arguments.length?(G=typeof Se==\"function\"?Se:u(Se),oe):G},oe.nodeAlign=function(Se){return arguments.length?(Z=typeof Se==\"function\"?Se:u(Se),oe):Z},oe.nodeWidth=function(Se){return arguments.length?(O=+Se,oe):O},oe.nodePadding=function(Se){return arguments.length?(V=+Se,oe):V},oe.nodes=function(Se){return arguments.length?(H=typeof Se==\"function\"?Se:u(Se),oe):H},oe.links=function(Se){return arguments.length?(N=typeof Se==\"function\"?Se:u(Se),oe):N},oe.size=function(Se){return arguments.length?(g=P=0,T=+Se[0],z=+Se[1],oe):[T-g,z-P]},oe.extent=function(Se){return arguments.length?(g=+Se[0][0],T=+Se[1][0],P=+Se[0][1],z=+Se[1][1],oe):[[g,P],[T,z]]},oe.iterations=function(Se){return arguments.length?(j=+Se,oe):j};function _e(Se){Se.nodes.forEach(function(Ae,Fe){Ae.index=Fe,Ae.sourceLinks=[],Ae.targetLinks=[]});var Le=r.map(Se.nodes,G);Se.links.forEach(function(Ae,Fe){Ae.index=Fe;var Pe=Ae.source,ge=Ae.target;typeof Pe!=\"object\"&&(Pe=Ae.source=S(Le,Pe)),typeof ge!=\"object\"&&(ge=Ae.target=S(Le,ge)),Pe.sourceLinks.push(Ae),ge.targetLinks.push(Ae)})}function Ee(Se){Se.nodes.forEach(function(Le){Le.value=Math.max(t.sum(Le.sourceLinks,d),t.sum(Le.targetLinks,d))})}function Ce(Se){var Le,Ae,Fe;for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.depth=Fe,ge.sourceLinks.forEach(function(Re){Ae.indexOf(Re.target)<0&&Ae.push(Re.target)})});for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.height=Fe,ge.targetLinks.forEach(function(Re){Ae.indexOf(Re.source)<0&&Ae.push(Re.source)})});var Pe=(T-g-O)/(Fe-1);Se.nodes.forEach(function(ge){ge.x1=(ge.x0=g+Math.max(0,Math.min(Fe-1,Math.floor(Z.call(null,ge,Fe))))*Pe)+O})}function me(Se){var Le=r.nest().key(function(Ze){return Ze.x0}).sortKeys(t.ascending).entries(Se.nodes).map(function(Ze){return Ze.values});Pe(),ce();for(var Ae=1,Fe=j;Fe>0;--Fe)Re(Ae*=.99),ce(),ge(Ae),ce();function Pe(){var Ze=t.max(Le,function(Zt){return Zt.length}),ut=re*(z-P)/(Ze-1);V>ut&&(V=ut);var pt=t.min(Le,function(Zt){return(z-P-(Zt.length-1)*V)/t.sum(Zt,d)});Le.forEach(function(Zt){Zt.forEach(function(st,lt){st.y1=(st.y0=lt)+st.value*pt})}),Se.links.forEach(function(Zt){Zt.width=Zt.value*pt})}function ge(Ze){Le.forEach(function(ut){ut.forEach(function(pt){if(pt.targetLinks.length){var Zt=(t.sum(pt.targetLinks,_)/t.sum(pt.targetLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function Re(Ze){Le.slice().reverse().forEach(function(ut){ut.forEach(function(pt){if(pt.sourceLinks.length){var Zt=(t.sum(pt.sourceLinks,b)/t.sum(pt.sourceLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function ce(){Le.forEach(function(Ze){var ut,pt,Zt=P,st=Ze.length,lt;for(Ze.sort(h),lt=0;lt0&&(ut.y0+=pt,ut.y1+=pt),Zt=ut.y1+V;if(pt=Zt-V-z,pt>0)for(Zt=ut.y0-=pt,ut.y1-=pt,lt=st-2;lt>=0;--lt)ut=Ze[lt],pt=ut.y1+V-Zt,pt>0&&(ut.y0-=pt,ut.y1-=pt),Zt=ut.y0})}}function ie(Se){Se.nodes.forEach(function(Le){Le.sourceLinks.sort(f),Le.targetLinks.sort(c)}),Se.nodes.forEach(function(Le){var Ae=Le.y0,Fe=Ae;Le.sourceLinks.forEach(function(Pe){Pe.y0=Ae+Pe.width/2,Ae+=Pe.width}),Le.targetLinks.forEach(function(Pe){Pe.y1=Fe+Pe.width/2,Fe+=Pe.width})})}return oe};function x(g){return[g.source.x1,g.y0]}function C(g){return[g.target.x0,g.y1]}var M=function(){return n.linkHorizontal().source(x).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 GWe=ye((Qbr,VWe)=>{var FZt=GJ();VWe.exports=function(t,r){var n=[],i=[],a=[],o={},s=[],l;function u(E){a[E]=!1,o.hasOwnProperty(E)&&Object.keys(o[E]).forEach(function(S){delete o[E][S],a[S]&&u(S)})}function c(E){var S=!1;i.push(E),a[E]=!0;var L,x;for(L=0;L=E})}function d(E){h(E);for(var S=t,L=FZt(S),x=L.components.filter(function(O){return O.length>1}),C=1/0,M,g=0;g{(function(e,t){typeof S7==\"object\"&&typeof HWe!=\"undefined\"?t(S7,nk(),y7(),HJ(),GWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,null)})(S7,function(e,t,r,n,i){\"use strict\";i=i&&i.hasOwnProperty(\"default\")?i.default:i;function a(st){return st.target.depth}function o(st){return st.depth}function s(st,lt){return lt-1-st.height}function l(st,lt){return st.sourceLinks.length?st.depth:lt-1}function u(st){return st.targetLinks.length?st.depth:st.sourceLinks.length?t.min(st.sourceLinks,a)-1:0}function c(st){return function(){return st}}var f=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(st){return typeof st}:function(st){return st&&typeof Symbol==\"function\"&&st.constructor===Symbol&&st!==Symbol.prototype?\"symbol\":typeof st};function h(st,lt){return v(st.source,lt.source)||st.index-lt.index}function d(st,lt){return v(st.target,lt.target)||st.index-lt.index}function v(st,lt){return st.partOfCycle===lt.partOfCycle?st.y0-lt.y0:st.circularLinkType===\"top\"||lt.circularLinkType===\"bottom\"?-1:1}function _(st){return st.value}function b(st){return(st.y0+st.y1)/2}function p(st){return b(st.source)}function k(st){return b(st.target)}function E(st){return st.index}function S(st){return st.nodes}function L(st){return st.links}function x(st,lt){var Gt=st.get(lt);if(!Gt)throw new Error(\"missing: \"+lt);return Gt}function C(st,lt){return lt(st)}var M=25,g=10,P=.3;function T(){var st=0,lt=0,Gt=1,Nt=1,Jt=24,sr,wr=E,cr=l,$e=S,St=L,Qt=32,Vt=2,_t,It=null;function mt(){var dt={nodes:$e.apply(null,arguments),links:St.apply(null,arguments)};er(dt),z(dt,wr,It),lr(dt),ti(dt),O(dt,wr),Br(dt,Qt,wr),Vr(dt);for(var Ge=4,Je=0;Je0?Ge+M+g:Ge,Je=Je>0?Je+M+g:Je,je=je>0?je+M+g:je,tt=tt>0?tt+M+g:tt,{top:Ge,bottom:Je,left:tt,right:je}}function Lr(dt,Ge){var Je=t.max(dt.nodes,function(vt){return vt.column}),je=Gt-st,tt=Nt-lt,xt=je+Ge.right+Ge.left,Ie=tt+Ge.top+Ge.bottom,xe=je/xt,ke=tt/Ie;return st=st*xe+Ge.left,Gt=Ge.right==0?Gt:Gt*xe,lt=lt*ke+Ge.top,Nt=Nt*ke,dt.nodes.forEach(function(vt){vt.x0=st+vt.column*((Gt-st-Jt)/Je),vt.x1=vt.x0+Jt}),ke}function ti(dt){var Ge,Je,je;for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.depth=je,tt.sourceLinks.forEach(function(xt){Je.indexOf(xt.target)<0&&!xt.circular&&Je.push(xt.target)})});for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.height=je,tt.targetLinks.forEach(function(xt){Je.indexOf(xt.source)<0&&!xt.circular&&Je.push(xt.source)})});dt.nodes.forEach(function(tt){tt.column=Math.floor(cr.call(null,tt,je))})}function Br(dt,Ge,Je){var je=r.nest().key(function(vt){return vt.column}).sortKeys(t.ascending).entries(dt.nodes).map(function(vt){return vt.values});Ie(Je),ke();for(var tt=1,xt=Ge;xt>0;--xt)xe(tt*=.99,Je),ke();function Ie(vt){if(_t){var ir=1/0;je.forEach(function(pi){var $r=Nt*_t/(pi.length+1);ir=$r0))if(pi==0&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else if(pi==ar-1&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else{var ji=0,In=t.mean($r.sourceLinks,k),wi=t.mean($r.targetLinks,p);In&&wi?ji=(In+wi)/2:ji=In||wi;var On=(ji-b($r))*vt;$r.y0+=On,$r.y1+=On}})})}function ke(){je.forEach(function(vt){var ir,ar,vr=lt,ii=vt.length,pi;for(vt.sort(v),pi=0;pi0&&(ir.y0+=ar,ir.y1+=ar),vr=ir.y1+sr;if(ar=vr-sr-Nt,ar>0)for(vr=ir.y0-=ar,ir.y1-=ar,pi=ii-2;pi>=0;--pi)ir=vt[pi],ar=ir.y1+sr-vr,ar>0&&(ir.y0-=ar,ir.y1-=ar),vr=ir.y0})}}function Vr(dt){dt.nodes.forEach(function(Ge){Ge.sourceLinks.sort(d),Ge.targetLinks.sort(h)}),dt.nodes.forEach(function(Ge){var Je=Ge.y0,je=Je,tt=Ge.y1,xt=tt;Ge.sourceLinks.forEach(function(Ie){Ie.circular?(Ie.y0=tt-Ie.width/2,tt=tt-Ie.width):(Ie.y0=Je+Ie.width/2,Je+=Ie.width)}),Ge.targetLinks.forEach(function(Ie){Ie.circular?(Ie.y1=xt-Ie.width/2,xt=xt-Ie.width):(Ie.y1=je+Ie.width/2,je+=Ie.width)})})}return mt}function z(st,lt,Gt){var Nt=0;if(Gt===null){for(var Jt=[],sr=0;srlt.source.column)}function Z(st,lt){var Gt=0;st.sourceLinks.forEach(function(Jt){Gt=Jt.circular&&!pt(Jt,lt)?Gt+1:Gt});var Nt=0;return st.targetLinks.forEach(function(Jt){Nt=Jt.circular&&!pt(Jt,lt)?Nt+1:Nt}),Gt+Nt}function H(st){var lt=st.source.sourceLinks,Gt=0;lt.forEach(function(sr){Gt=sr.circular?Gt+1:Gt});var Nt=st.target.targetLinks,Jt=0;return Nt.forEach(function(sr){Jt=sr.circular?Jt+1:Jt}),!(Gt>1||Jt>1)}function N(st,lt,Gt){return st.sort(oe),st.forEach(function(Nt,Jt){var sr=0;if(pt(Nt,Gt)&&H(Nt))Nt.circularPathData.verticalBuffer=sr+Nt.width/2;else{var wr=0;for(wr;wrsr?cr:sr}Nt.circularPathData.verticalBuffer=sr+Nt.width/2}}),st}function j(st,lt,Gt,Nt){var Jt=5,sr=t.min(st.links,function($e){return $e.source.y0});st.links.forEach(function($e){$e.circular&&($e.circularPathData={})});var wr=st.links.filter(function($e){return $e.circularLinkType==\"top\"});N(wr,lt,Nt);var cr=st.links.filter(function($e){return $e.circularLinkType==\"bottom\"});N(cr,lt,Nt),st.links.forEach(function($e){if($e.circular){if($e.circularPathData.arcRadius=$e.width+g,$e.circularPathData.leftNodeBuffer=Jt,$e.circularPathData.rightNodeBuffer=Jt,$e.circularPathData.sourceWidth=$e.source.x1-$e.source.x0,$e.circularPathData.sourceX=$e.source.x0+$e.circularPathData.sourceWidth,$e.circularPathData.targetX=$e.target.x0,$e.circularPathData.sourceY=$e.y0,$e.circularPathData.targetY=$e.y1,pt($e,Nt)&&H($e))$e.circularPathData.leftSmallArcRadius=g+$e.width/2,$e.circularPathData.leftLargeArcRadius=g+$e.width/2,$e.circularPathData.rightSmallArcRadius=g+$e.width/2,$e.circularPathData.rightLargeArcRadius=g+$e.width/2,$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=$e.source.y1+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=$e.source.y0-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius);else{var St=$e.source.column,Qt=$e.circularLinkType,Vt=st.links.filter(function(mt){return mt.source.column==St&&mt.circularLinkType==Qt});$e.circularLinkType==\"bottom\"?Vt.sort(Ee):Vt.sort(_e);var _t=0;Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.leftSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.leftLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),St=$e.target.column,Vt=st.links.filter(function(mt){return mt.target.column==St&&mt.circularLinkType==Qt}),$e.circularLinkType==\"bottom\"?Vt.sort(me):Vt.sort(Ce),_t=0,Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.rightSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.rightLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=Math.max(Gt,$e.source.y1,$e.target.y1)+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=sr-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius)}$e.circularPathData.leftInnerExtent=$e.circularPathData.sourceX+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightInnerExtent=$e.circularPathData.targetX-$e.circularPathData.rightNodeBuffer,$e.circularPathData.leftFullExtent=$e.circularPathData.sourceX+$e.circularPathData.leftLargeArcRadius+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightFullExtent=$e.circularPathData.targetX-$e.circularPathData.rightLargeArcRadius-$e.circularPathData.rightNodeBuffer}if($e.circular)$e.path=re($e);else{var It=n.linkHorizontal().source(function(mt){var er=mt.source.x0+(mt.source.x1-mt.source.x0),lr=mt.y0;return[er,lr]}).target(function(mt){var er=mt.target.x0,lr=mt.y1;return[er,lr]});$e.path=It($e)}})}function re(st){var lt=\"\";return st.circularLinkType==\"top\"?lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 0 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY-st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 0 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 0 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY-st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 0 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY:lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 1 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY+st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 1 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 1 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY+st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 1 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY,lt}function oe(st,lt){return ie(st)==ie(lt)?st.circularLinkType==\"bottom\"?Ee(st,lt):_e(st,lt):ie(lt)-ie(st)}function _e(st,lt){return st.y0-lt.y0}function Ee(st,lt){return lt.y0-st.y0}function Ce(st,lt){return st.y1-lt.y1}function me(st,lt){return lt.y1-st.y1}function ie(st){return st.target.column-st.source.column}function Se(st){return st.target.x0-st.source.x1}function Le(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1+Nt:st.y1-Nt;return Jt}function Ae(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1-Nt:st.y1+Nt;return Jt}function Fe(st,lt,Gt,Nt){st.links.forEach(function(Jt){if(!Jt.circular&&Jt.target.column-Jt.source.column>1){var sr=Jt.source.column+1,wr=Jt.target.column-1,cr=1,$e=wr-sr+1;for(cr=1;sr<=wr;sr++,cr++)st.nodes.forEach(function(St){if(St.column==sr){var Qt=cr/($e+1),Vt=Math.pow(1-Qt,3),_t=3*Qt*Math.pow(1-Qt,2),It=3*Math.pow(Qt,2)*(1-Qt),mt=Math.pow(Qt,3),er=Vt*Jt.y0+_t*Jt.y0+It*Jt.y1+mt*Jt.y1,lr=er-Jt.width/2,Tr=er+Jt.width/2,Lr;lr>St.y0&&lrSt.y0&&TrSt.y1&&ge(ti,Lr,lt,Gt)})):lrSt.y1&&(Lr=Tr-St.y0+10,St=ge(St,Lr,lt,Gt),st.nodes.forEach(function(ti){C(ti,Nt)==C(St,Nt)||ti.column!=St.column||ti.y0St.y1&&ge(ti,Lr,lt,Gt)}))}})}})}function Pe(st,lt){return st.y0>lt.y0&&st.y0lt.y0&&st.y1lt.y1}function ge(st,lt,Gt,Nt){return st.y0+lt>=Gt&&st.y1+lt<=Nt&&(st.y0=st.y0+lt,st.y1=st.y1+lt,st.targetLinks.forEach(function(Jt){Jt.y1=Jt.y1+lt}),st.sourceLinks.forEach(function(Jt){Jt.y0=Jt.y0+lt})),st}function Re(st,lt,Gt,Nt){st.nodes.forEach(function(Jt){Nt&&Jt.y+(Jt.y1-Jt.y0)>lt&&(Jt.y=Jt.y-(Jt.y+(Jt.y1-Jt.y0)-lt));var sr=st.links.filter(function($e){return C($e.source,Gt)==C(Jt,Gt)}),wr=sr.length;wr>1&&sr.sort(function($e,St){if(!$e.circular&&!St.circular){if($e.target.column==St.target.column)return $e.y1-St.y1;if(Ze($e,St)){if($e.target.column>St.target.column){var Qt=Ae(St,$e);return $e.y1-Qt}if(St.target.column>$e.target.column){var Vt=Ae($e,St);return Vt-St.y1}}else return $e.y1-St.y1}if($e.circular&&!St.circular)return $e.circularLinkType==\"top\"?-1:1;if(St.circular&&!$e.circular)return St.circularLinkType==\"top\"?1:-1;if($e.circular&&St.circular)return $e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"top\"?$e.target.column===St.target.column?$e.target.y1-St.target.y1:St.target.column-$e.target.column:$e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"bottom\"?$e.target.column===St.target.column?St.target.y1-$e.target.y1:$e.target.column-St.target.column:$e.circularLinkType==\"top\"?-1:1});var cr=Jt.y0;sr.forEach(function($e){$e.y0=cr+$e.width/2,cr=cr+$e.width}),sr.forEach(function($e,St){if($e.circularLinkType==\"bottom\"){var Qt=St+1,Vt=0;for(Qt;Qt1&&Jt.sort(function(cr,$e){if(!cr.circular&&!$e.circular){if(cr.source.column==$e.source.column)return cr.y0-$e.y0;if(Ze(cr,$e)){if($e.source.column0?\"up\":\"down\"}function pt(st,lt){return C(st.source,lt)==C(st.target,lt)}function Zt(st,lt,Gt){var Nt=st.nodes,Jt=st.links,sr=!1,wr=!1;if(Jt.forEach(function(_t){_t.circularLinkType==\"top\"?sr=!0:_t.circularLinkType==\"bottom\"&&(wr=!0)}),sr==!1||wr==!1){var cr=t.min(Nt,function(_t){return _t.y0}),$e=t.max(Nt,function(_t){return _t.y1}),St=$e-cr,Qt=Gt-lt,Vt=Qt/St;Nt.forEach(function(_t){var It=(_t.y1-_t.y0)*Vt;_t.y0=(_t.y0-cr)*Vt,_t.y1=_t.y0+It}),Jt.forEach(function(_t){_t.y0=(_t.y0-cr)*Vt,_t.y1=(_t.y1-cr)*Vt,_t.width=_t.width*Vt})}}e.sankeyCircular=T,e.sankeyCenter=u,e.sankeyLeft=o,e.sankeyRight=s,e.sankeyJustify=l,Object.defineProperty(e,\"__esModule\",{value:!0})})});var jJ=ye((e2r,WWe)=>{\"use strict\";WWe.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 aXe=ye((t2r,nXe)=>{\"use strict\";var XWe=zWe(),zZt=(D2(),ob(R2)).interpolateNumber,I5=Oa(),Jk=UWe(),OZt=jWe(),Nu=jJ(),R5=cd(),ow=ka(),qZt=So(),p1=Dr(),ZJ=p1.strTranslate,BZt=p1.strRotate,YJ=Jm(),$k=YJ.keyFun,M7=YJ.repeat,QWe=YJ.unwrap,ZWe=ru(),NZt=qa(),eXe=$h(),UZt=eXe.CAP_SHIFT,VZt=eXe.LINE_SPACING,GZt=3;function HZt(e,t,r){var n=QWe(t),i=n.trace,a=i.domain,o=i.orientation===\"h\",s=i.node.pad,l=i.node.thickness,u={justify:Jk.sankeyJustify,left:Jk.sankeyLeft,right:Jk.sankeyRight,center:Jk.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,_;v?_=OZt.sankeyCircular().circularLinkGap(0):_=Jk.sankey(),_.iterations(Nu.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=_();_.nodePadding()=N||(H=N-Z.y0,H>1e-6&&(Z.y0+=H,Z.y1+=H)),N=Z.y1+s})}function P(V){var G=V.map(function(_e,Ee){return{x0:_e.x0,index:Ee}}).sort(function(_e,Ee){return _e.x0-Ee.x0}),Z=[],H=-1,N,j=-1/0,re;for(p=0;pj+l&&(H+=1,N=oe.x0),j=oe.x0,Z[H]||(Z[H]=[]),Z[H].push(oe),re=N-oe.x0,oe.x0+=re,oe.x1+=re}return Z}if(i.node.x.length&&i.node.y.length){for(p=0;p0?\" 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 KJ(){var e=.5;function t(r){var n=r.linkArrowLength;if(r.link.circular)return WZt(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=zZt(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,_=\"C\"+l+\",\"+c+\" \"+u+\",\"+h+\" \"+o+\",\"+h,b=\"C\"+u+\",\"+d+\" \"+l+\",\"+f+\" \"+a+\",\"+f,p=n>0?\"L\"+(o+n)+\",\"+(h+r.link.width/2):\"\";return p+=\"L\"+o+\",\"+d,v+_+p+b+\"Z\"}return t}function XZt(e,t){var r=R5(t.color),n=Nu.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:ow.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 XJ(e){e.attr(\"transform\",function(t){return ZJ(t.node.x0.toFixed(3),t.node.y0.toFixed(3))})}function ZZt(e){e.call(XJ)}function tXe(e,t){e.call(ZZt),t.attr(\"d\",KJ())}function YWe(e){e.attr(\"width\",function(t){return t.node.x1-t.node.x0}).attr(\"height\",function(t){return t.visibleHeight})}function WJ(e){return e.link.width>1||e.linkLineWidth>0}function KWe(e){var t=ZJ(e.translateX,e.translateY);return t+(e.horizontal?\"matrix(1 0 0 1 0 0)\":\"matrix(0 1 1 0 0 0)\")}function JWe(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 YZt(e,t,r,n){var i=I5.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,$We(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):KZt(e,o,a,n),JZt(e,t,a,o,n)}}).on(\"drag\",function(a){if(a.arrangement!==\"fixed\"){var o=I5.event.x,s=I5.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),$We(a.node),a.arrangement!==\"snap\"&&(a.sankey.update(a.graph),tXe(e.filter(iXe(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,rXe(r,i)}})}function $Zt(e,t,r,n){return function(){for(var a=0,o=0;o0&&n.forceLayouts[t].alpha(0)}}function rXe(e,t){for(var r=[],n=[],i=0;i{\"use strict\";var Zv=Oa(),$J=Dr(),E7=$J.numberFormat,rYt=aXe(),D5=vf(),iYt=ka(),Sx=jJ().cn,Qk=$J._;function oXe(e){return e!==\"\"}function F5(e,t){return e.filter(function(r){return r.key===t.traceId})}function sXe(e,t){Zv.select(e).select(\"path\").style(\"fill-opacity\",t),Zv.select(e).select(\"rect\").style(\"fill-opacity\",t)}function lXe(e){Zv.select(e).select(\"text.name\").style(\"fill\",\"black\")}function uXe(e){return function(t){return e.node.sourceLinks.indexOf(t.link)!==-1||e.node.targetLinks.indexOf(t.link)!==-1}}function cXe(e){return function(t){return t.node.sourceLinks.indexOf(e.link)!==-1||t.node.targetLinks.indexOf(e.link)!==-1}}function fXe(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(hXe.bind(0,t,r,!1))}function JJ(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(dXe.bind(0,t,r,!1))}function hXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(\".\"+Sx.sankeyNode).filter(cXe(e)).call(fXe)}function dXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(Sx.sankeyNode).filter(cXe(e)).call(JJ)}function kf(e,t){var r=e.hoverlabel||{},n=$J.nestedProperty(r,t).get();return Array.isArray(n)?!1:n}vXe.exports=function(t,r){for(var n=t._fullLayout,i=n._paper,a=n._size,o=0;o\"),color:kf(C,\"bgcolor\")||iYt.addOpacity(z.color,1),borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:Zv.event.x\"),color:kf(C,\"bgcolor\")||x.tinyColorHue,borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:\"left\",hovertemplate:C.hovertemplate,hovertemplateLabels:V,eventData:[x.node]},{container:n._hoverlayer.node(),outerContainer:n._paper.node(),gd:t});sXe(H,.85),lXe(H)}}},S=function(L,x,C){t._fullLayout.hovermode!==!1&&(Zv.select(L).call(JJ,x,C),x.node.trace.node.hoverinfo!==\"skip\"&&(x.node.fullData=x.node.trace,t.emit(\"plotly_unhover\",{event:Zv.event,points:[x.node]})),D5.loneUnhover(n._hoverlayer.node()))};rYt(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:_,unhover:b,select:l},nodeEvents:{hover:k,follow:E,unhover:S,select:p}})}});var pXe=ye(sw=>{\"use strict\";var nYt=mc().overrideAll,aYt=Id().getModuleCalcData,oYt=QJ(),sYt=B1(),lYt=Ag(),uYt=yv(),cYt=Of().prepSelect,e$=Dr(),fYt=qa(),k7=\"sankey\";sw.name=k7;sw.baseLayoutAttrOverrides=nYt({hoverlabel:sYt.hoverlabel},\"plot\",\"nested\");sw.plot=function(e){var t=aYt(e.calcdata,k7)[0];oYt(e,t),sw.updateFx(e)};sw.clean=function(e,t,r,n){var i=n._has&&n._has(k7),a=t._has&&t._has(k7);i&&!a&&(n._paperdiv.selectAll(\".sankey\").remove(),n._paperdiv.selectAll(\".bgsankey\").remove())};sw.updateFx=function(e){for(var t=0;t{\"use strict\";gXe.exports=function(t,r){for(var n=t.cd,i=[],a=n[0].trace,o=a._sankey.graph.nodes,s=0;s{\"use strict\";yXe.exports={attributes:VJ(),supplyDefaults:wWe(),calc:EWe(),plot:QJ(),moduleType:\"trace\",name:\"sankey\",basePlotModule:pXe(),selectPoints:mXe(),categories:[\"noOpacity\"],meta:{}}});var bXe=ye((o2r,xXe)=>{\"use strict\";xXe.exports=_Xe()});var TXe=ye(z5=>{\"use strict\";var wXe=Mc();z5.name=\"indicator\";z5.plot=function(e,t,r,n){wXe.plotBasePlot(z5.name,e,t,r,n)};z5.clean=function(e,t,r,n){wXe.cleanBasePlot(z5.name,e,t,r,n)}});var r$=ye((l2r,CXe)=>{\"use strict\";var Mx=Ao().extendFlat,SXe=Ao().extendDeep,dYt=mc().overrideAll,MXe=ec(),EXe=Lh(),vYt=Cc().attributes,Bf=Rd(),pYt=vl().templatedArray,C7=WT(),AXe=df().descriptionOnlyNumbers,t$=MXe({editType:\"plot\",colorEditType:\"plot\"}),eC={color:{valType:\"color\",editType:\"plot\"},line:{color:{valType:\"color\",dflt:EXe.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\"},kXe={valType:\"info_array\",items:[{valType:\"number\",editType:\"plot\"},{valType:\"number\",editType:\"plot\"}],editType:\"plot\"},gYt=pYt(\"step\",SXe({},eC,{range:kXe}));CXe.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:vYt({name:\"indicator\",trace:!0,editType:\"calc\"}),title:{text:{valType:\"string\",editType:\"plot\"},align:{valType:\"enumerated\",values:[\"left\",\"center\",\"right\"],editType:\"plot\"},font:Mx({},t$,{}),editType:\"plot\"},number:{valueformat:{valType:\"string\",dflt:\"\",editType:\"plot\",description:AXe(\"value\")},font:Mx({},t$,{}),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:AXe(\"value\")},increasing:{symbol:{valType:\"string\",dflt:C7.INCREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.INCREASING.COLOR,editType:\"plot\"},editType:\"plot\"},decreasing:{symbol:{valType:\"string\",dflt:C7.DECREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.DECREASING.COLOR,editType:\"plot\"},editType:\"plot\"},font:Mx({},t$,{}),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:SXe({},eC,{color:{dflt:\"green\"}}),bgcolor:{valType:\"color\",editType:\"plot\"},bordercolor:{valType:\"color\",dflt:EXe.defaultLine,editType:\"plot\"},borderwidth:{valType:\"number\",min:0,dflt:1,editType:\"plot\"},axis:dYt({range:kXe,visible:Mx({},Bf.visible,{dflt:!0}),tickmode:Bf.minor.tickmode,nticks:Bf.nticks,tick0:Bf.tick0,dtick:Bf.dtick,tickvals:Bf.tickvals,ticktext:Bf.ticktext,ticks:Mx({},Bf.ticks,{dflt:\"outside\"}),ticklen:Bf.ticklen,tickwidth:Bf.tickwidth,tickcolor:Bf.tickcolor,ticklabelstep:Bf.ticklabelstep,showticklabels:Bf.showticklabels,labelalias:Bf.labelalias,tickfont:MXe({}),tickangle:Bf.tickangle,tickformat:Bf.tickformat,tickformatstops:Bf.tickformatstops,tickprefix:Bf.tickprefix,showtickprefix:Bf.showtickprefix,ticksuffix:Bf.ticksuffix,showticksuffix:Bf.showticksuffix,separatethousands:Bf.separatethousands,exponentformat:Bf.exponentformat,minexponent:Bf.minexponent,showexponent:Bf.showexponent,editType:\"plot\"},\"plot\"),steps:gYt,threshold:{line:{color:Mx({},eC.line.color,{}),width:Mx({},eC.line.width,{dflt:1}),editType:\"plot\"},thickness:Mx({},eC.thickness,{dflt:.85}),value:{valType:\"number\",editType:\"calc\",dflt:!1},editType:\"plot\"},editType:\"plot\"}}});var i$=ye((u2r,LXe)=>{\"use strict\";LXe.exports={defaultNumberFontSize:80,bulletNumberDomainSize:.25,bulletPadding:.025,innerRadius:.75,valueThickness:.5,titlePadding:5,horizontalPadding:10}});var RXe=ye((c2r,IXe)=>{\"use strict\";var ty=Dr(),P7=r$(),mYt=Cc().defaults,PXe=vl(),yYt=Yd(),L7=i$(),_Yt=bb(),xYt=S3(),bYt=e_(),wYt=t_();function TYt(e,t,r,n){function i(x,C){return ty.coerce(e,t,P7,x,C)}mYt(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=ty.extendFlat({},n.font);l.size=void 0,ty.coerceFont(i,\"number.font\",l),t.number.font.size===void 0&&(t.number.font.size=L7.defaultNumberFontSize,o[0]=!0),i(\"number.prefix\"),i(\"number.suffix\"),s=t.number.font.size}var u;if(t._hasDelta){var c=ty.extendFlat({},n.font);c.size=void 0,ty.coerceFont(i,\"delta.font\",c),t.delta.font.size===void 0&&(t.delta.font.size=(t._hasNumber?.5:1)*(s||L7.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=ty.extendFlat({},n.font);f.size=.25*(s||u||L7.defaultNumberFontSize),ty.coerceFont(i,\"title.font\",f),i(\"title.text\");var h,d,v,_;function b(x,C){return ty.coerce(h,d,P7.gauge,x,C)}function p(x,C){return ty.coerce(v,_,P7.gauge.axis,x,C)}if(t._hasGauge){h=e.gauge,h||(h={}),d=PXe.newContainer(t,\"gauge\"),b(\"shape\");var k=t._isBullet=t.gauge.shape===\"bullet\";k||i(\"title.align\",\"center\");var E=t._isAngular=t.gauge.shape===\"angular\";E||i(\"align\",\"center\"),b(\"bgcolor\",n.paper_bgcolor),b(\"borderwidth\"),b(\"bordercolor\"),b(\"bar.color\"),b(\"bar.line.color\"),b(\"bar.line.width\");var S=L7.valueThickness*(t.gauge.shape===\"bullet\"?.5:1);b(\"bar.thickness\",S),yYt(h,d,{name:\"steps\",handleItemDefaults:AYt}),b(\"threshold.value\"),b(\"threshold.thickness\"),b(\"threshold.line.width\"),b(\"threshold.line.color\"),v={},h&&(v=h.axis||{}),_=PXe.newContainer(d,\"axis\"),p(\"visible\"),t._range=p(\"range\",t._range);var L={font:n.font,noAutotickangles:!0,outerTicks:!0,noTicklabelshift:!0,noTicklabelstandoff:!0};_Yt(v,_,p,\"linear\"),wYt(v,_,p,\"linear\",L),bYt(v,_,p,\"linear\",L),xYt(v,_,p,L)}else i(\"title.align\",\"center\"),i(\"align\",\"center\"),t._isAngular=t._isBullet=!1;t._length=null}function AYt(e,t){function r(n,i){return ty.coerce(e,t,P7.gauge.steps,n,i)}r(\"color\"),r(\"line.color\"),r(\"line.width\"),r(\"range\"),r(\"thickness\")}IXe.exports={supplyDefaults:TYt}});var FXe=ye((f2r,DXe)=>{\"use strict\";function SYt(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}DXe.exports={calc:SYt}});var UXe=ye((h2r,NXe)=>{\"use strict\";var hw=Oa(),MYt=(D2(),ob(R2)).interpolate,zXe=(D2(),ob(R2)).interpolateNumber,Ex=Dr(),EYt=Ex.strScale,rC=Ex.strTranslate,kYt=Ex.rad2deg,CYt=$h().MID_SHIFT,fw=So(),lw=i$(),R7=ru(),sv=ho(),LYt=r4(),PYt=lI(),IYt=Rd(),O5=ka(),n$={left:\"start\",center:\"middle\",right:\"end\"},uw={left:0,center:.5,right:1},OXe=/[yzafpnµmkMGTPEZY]/;function iC(e){return e&&e.duration>0}NXe.exports=function(t,r,n,i){var a=t._fullLayout,o;iC(n)&&i&&(o=i()),Ex.makeTraceGroups(a._indicatorlayer,r,\"trace\").each(function(s){var l=s[0],u=l.trace,c=hw.select(this),f=u._hasGauge,h=u._isAngular,d=u._isBullet,v=u.domain,_={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=_.l+_.w/2,p=_.t+_.h/2,k=Math.min(_.w/2,_.h),E=lw.innerRadius*k,S,L,x,C=u.align||\"center\";if(L=p,!f)S=_.l+uw[C]*_.w,x=function(H){return qXe(H,_.w,_.h)};else if(h&&(S=b,L=p+k/2,x=function(H){return OYt(H,.9*E)}),d){var M=lw.bulletPadding,g=1-lw.bulletNumberDomainSize+M;S=_.l+(g+(1-g)*uw[C])*_.w,x=function(H){return qXe(H,(lw.bulletNumberDomainSize-M)*_.w,_.h)}}FYt(t,c,s,{numbersX:S,numbersY:L,numbersScaler:x,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 z=c.selectAll(\"g.angular\").data(h?s:[]);z.exit().remove();var O=c.selectAll(\"g.angularaxis\").data(h?s:[]);O.exit().remove(),h&&DYt(t,c,s,{radius:k,innerRadius:E,gauge:z,layer:O,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var V=c.selectAll(\"g.bullet\").data(d?s:[]);V.exit().remove();var G=c.selectAll(\"g.bulletaxis\").data(d?s:[]);G.exit().remove(),d&&RYt(t,c,s,{gauge:V,layer:G,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var Z=c.selectAll(\"text.title\").data(s);Z.exit().remove(),Z.enter().append(\"text\").classed(\"title\",!0),Z.attr(\"text-anchor\",function(){return d?n$.right:n$[u.title.align]}).text(u.title.text).call(fw.font,u.title.font).call(R7.convertToTspans,t),Z.attr(\"transform\",function(){var H=_.l+_.w*uw[u.title.align],N,j=lw.titlePadding,re=fw.bBox(Z.node());if(f){if(h)if(u.gauge.axis.visible){var oe=fw.bBox(O.node());N=oe.top-j-re.bottom}else N=_.t+_.h/2-k/2-re.bottom-j;d&&(N=L-(re.top+re.bottom)/2,H=_.l-lw.bulletPadding*_.w)}else N=u._numbersTop-j-re.bottom;return rC(H,N)})})};function RYt(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,_,b,p;a.enter().append(\"g\").classed(\"bullet\",!0),a.attr(\"transform\",rC(u.l,u.t)),o.enter().append(\"g\").classed(\"bulletaxis\",!0).classed(\"crisp\",!0),o.selectAll(\"g.xbulletaxistick,path,text\").remove();var k=u.h,E=i.gauge.bar.thickness*k,S=c.x[0],L=c.x[0]+(c.x[1]-c.x[0])*(i._hasNumber||i._hasDelta?1-lw.bulletNumberDomainSize:1);d=tC(e,i.gauge.axis),d._id=\"xbulletaxis\",d.domain=[S,L],d.setScale(),v=sv.calcTicks(d),_=sv.makeTransTickFn(d),b=sv.getTickSigns(d)[2],p=u.t+u.h,d.visible&&(sv.drawTicks(e,d,{vals:d.ticks===\"inside\"?sv.clipEnds(d,v):v,layer:o,path:sv.makeTickPath(d,p,b),transFn:_}),sv.drawLabels(e,d,{vals:v,layer:o,transFn:_,labelFns:sv.makeLabelFns(d,p)}));function x(O){O.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)*k}).attr(\"height\",function(V){return V.thickness*k})}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(x).call(cw),M.exit().remove();var g=a.selectAll(\"g.value-bullet\").data([i.gauge.bar]);g.enter().append(\"g\").classed(\"value-bullet\",!0).append(\"rect\"),g.select(\"rect\").attr(\"height\",E).attr(\"y\",(k-E)/2).call(cw),iC(f)?g.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)))):g.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),g.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*k).attr(\"y2\",(1-(1-i.gauge.threshold.thickness)/2)*k).call(O5.stroke,i.gauge.threshold.line.color).style(\"stroke-width\",i.gauge.threshold.line.width),T.exit().remove();var z=a.selectAll(\"g.gauge-outline\").data([l]);z.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"rect\"),z.select(\"rect\").call(x).call(cw),z.exit().remove()}function DYt(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,_=Math.PI/2;function b(_e){var Ee=i.gauge.axis.range[0],Ce=i.gauge.axis.range[1],me=(_e-Ee)/(Ce-Ee)*Math.PI-_;return me<-_?-_:me>_?_:me}function p(_e){return hw.svg.arc().innerRadius((s+o)/2-_e/2*(o-s)).outerRadius((s+o)/2+_e/2*(o-s)).startAngle(-_)}function k(_e){_e.attr(\"d\",function(Ee){return p(Ee.thickness).startAngle(b(Ee.range[0])).endAngle(b(Ee.range[1]))()})}var E,S,L,x;f.enter().append(\"g\").classed(\"angular\",!0),f.attr(\"transform\",rC(c[0],c[1])),h.enter().append(\"g\").classed(\"angularaxis\",!0).classed(\"crisp\",!0),h.selectAll(\"g.xangularaxistick,path,text\").remove(),E=tC(e,i.gauge.axis),E.type=\"linear\",E.range=i.gauge.axis.range,E._id=\"xangularaxis\",E.ticklabeloverflow=\"allow\",E.setScale();var C=function(_e){return(E.range[0]-_e.x)/(E.range[1]-E.range[0])*Math.PI+Math.PI},M={},g=sv.makeLabelFns(E,0),P=g.labelStandoff;M.xFn=function(_e){var Ee=C(_e);return Math.cos(Ee)*P},M.yFn=function(_e){var Ee=C(_e),Ce=Math.sin(Ee)>0?.2:1;return-Math.sin(Ee)*(P+_e.fontSize*Ce)+Math.abs(Math.cos(Ee))*(_e.fontSize*CYt)},M.anchorFn=function(_e){var Ee=C(_e),Ce=Math.cos(Ee);return Math.abs(Ce)<.1?\"middle\":Ce>0?\"start\":\"end\"},M.heightFn=function(_e,Ee,Ce){var me=C(_e);return-.5*(1+Math.sin(me))*Ce};var T=function(_e){return rC(c[0]+o*Math.cos(_e),c[1]-o*Math.sin(_e))};L=function(_e){return T(C(_e))};var z=function(_e){var Ee=C(_e);return T(Ee)+\"rotate(\"+-kYt(Ee)+\")\"};if(S=sv.calcTicks(E),x=sv.getTickSigns(E)[2],E.visible){x=E.ticks===\"inside\"?-1:1;var O=(E.linewidth||1)/2;sv.drawTicks(e,E,{vals:S,layer:h,path:\"M\"+x*O+\",0h\"+x*E.ticklen,transFn:z}),sv.drawLabels(e,E,{vals:S,layer:h,transFn:L,labelFns:M})}var V=[l].concat(i.gauge.steps),G=f.selectAll(\"g.bg-arc\").data(V);G.enter().append(\"g\").classed(\"bg-arc\",!0).append(\"path\"),G.select(\"path\").call(k).call(cw),G.exit().remove();var Z=p(i.gauge.bar.thickness),H=f.selectAll(\"g.value-arc\").data([i.gauge.bar]);H.enter().append(\"g\").classed(\"value-arc\",!0).append(\"path\");var N=H.select(\"path\");iC(d)?(N.transition().duration(d.duration).ease(d.easing).each(\"end\",function(){v&&v()}).each(\"interrupt\",function(){v&&v()}).attrTween(\"d\",zYt(Z,b(r[0].lastY),b(r[0].y))),i._lastValue=r[0].y):N.attr(\"d\",typeof r[0].y==\"number\"?Z.endAngle(b(r[0].y)):\"M0,0Z\"),N.call(cw),H.exit().remove(),V=[];var j=i.gauge.threshold.value;(j||j===0)&&V.push({range:[j,j],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(k).call(cw),re.exit().remove();var oe=f.selectAll(\"g.gauge-outline\").data([u]);oe.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"path\"),oe.select(\"path\").call(k).call(cw),oe.exit().remove()}function FYt(e,t,r,n){var i=r[0].trace,a=n.numbersX,o=n.numbersY,s=i.align||\"center\",l=n$[s],u=n.transitionOpts,c=n.onComplete,f=Ex.ensureSingle(t,\"g\",\"numbers\"),h,d,v,_=[];i._hasNumber&&_.push(\"number\"),i._hasDelta&&(_.push(\"delta\"),i.delta.position===\"left\"&&_.reverse());var b=f.selectAll(\"text\").data(_);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 p(T,z,O,V){if(T.match(\"s\")&&O>=0!=V>=0&&!z(O).slice(-1).match(OXe)&&!z(V).slice(-1).match(OXe)){var G=T.slice().replace(\"s\",\"f\").replace(/\\d+/,function(H){return parseInt(H)-1}),Z=tC(e,{tickformat:G});return function(H){return Math.abs(H)<1?sv.tickText(Z,H).text:z(H)}}else return z}function k(){var T=tC(e,{tickformat:i.number.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(H){return sv.tickText(T,H).text},O=i.number.suffix,V=i.number.prefix,G=f.select(\"text.number\");function Z(){var H=typeof r[0].y==\"number\"?V+z(r[0].y)+O:\"-\";G.text(H).call(fw.font,i.number.font).call(R7.convertToTspans,e)}return iC(u)?G.transition().duration(u.duration).ease(u.easing).each(\"end\",function(){Z(),c&&c()}).each(\"interrupt\",function(){Z(),c&&c()}).attrTween(\"text\",function(){var H=hw.select(this),N=zXe(r[0].lastY,r[0].y);i._lastValue=r[0].y;var j=p(i.number.valueformat,z,r[0].lastY,r[0].y);return function(re){H.text(V+j(N(re))+O)}}):Z(),h=BXe(V+z(r[0].y)+O,i.number.font,l,e),G}function E(){var T=tC(e,{tickformat:i.delta.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(re){return sv.tickText(T,re).text},O=i.delta.suffix,V=i.delta.prefix,G=function(re){var oe=i.delta.relative?re.relativeDelta:re.delta;return oe},Z=function(re,oe){return re===0||typeof re!=\"number\"||isNaN(re)?\"-\":(re>0?i.delta.increasing.symbol:i.delta.decreasing.symbol)+V+oe(re)+O},H=function(re){return re.delta>=0?i.delta.increasing.color:i.delta.decreasing.color};i._deltaLastValue===void 0&&(i._deltaLastValue=G(r[0]));var N=f.select(\"text.delta\");N.call(fw.font,i.delta.font).call(O5.fill,H({delta:i._deltaLastValue}));function j(){N.text(Z(G(r[0]),z)).call(O5.fill,H(r[0])).call(R7.convertToTspans,e)}return iC(u)?N.transition().duration(u.duration).ease(u.easing).tween(\"text\",function(){var re=hw.select(this),oe=G(r[0]),_e=i._deltaLastValue,Ee=p(i.delta.valueformat,z,_e,oe),Ce=zXe(_e,oe);return i._deltaLastValue=oe,function(me){re.text(Z(Ce(me),Ee)),re.call(O5.fill,H({delta:Ce(me)}))}}).each(\"end\",function(){j(),c&&c()}).each(\"interrupt\",function(){j(),c&&c()}):j(),d=BXe(Z(G(r[0]),z),i.delta.font,l,e),N}var S=i.mode+i.align,L;if(i._hasDelta&&(L=E(),S+=i.delta.position+i.delta.font.size+i.delta.font.family+i.delta.valueformat,S+=i.delta.increasing.symbol+i.delta.decreasing.symbol,v=d),i._hasNumber&&(k(),S+=i.number.font.size+i.number.font.family+i.number.valueformat+i.number.suffix+i.number.prefix,v=h),i._hasDelta&&i._hasNumber){var x=[(h.left+h.right)/2,(h.top+h.bottom)/2],C=[(d.left+d.right)/2,(d.top+d.bottom)/2],M,g,P=.75*i.delta.font.size;i.delta.position===\"left\"&&(M=I7(i,\"deltaPos\",0,-1*(h.width*uw[i.align]+d.width*(1-uw[i.align])+P),S,Math.min),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"right\"&&(M=I7(i,\"deltaPos\",0,h.width*(1-uw[i.align])+d.width*uw[i.align]+P,S,Math.max),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"bottom\"&&(M=null,g=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,g=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:g})}(i._hasNumber||i._hasDelta)&&f.attr(\"transform\",function(){var T=n.numbersScaler(v);S+=T[2];var z=I7(i,\"numbersScale\",1,T[0],S,Math.min),O;i._scaleNumbers||(z=1),i._isAngular?O=o-z*v.bottom:O=o-z*(v.top+v.bottom)/2,i._numbersTop=z*v.top+O;var V=v[s];s===\"center\"&&(V=(v.left+v.right)/2);var G=a-z*V;return G=I7(i,\"numbersTranslate\",0,G,S,Math.max),rC(G,O)+EYt(z)})}function cw(e){e.each(function(t){O5.stroke(hw.select(this),t.line.color)}).each(function(t){O5.fill(hw.select(this),t.color)}).style(\"stroke-width\",function(t){return t.line.width})}function zYt(e,t,r){return function(){var n=MYt(t,r);return function(i){return e.endAngle(n(i))()}}}function tC(e,t,r){var n=e._fullLayout,i=Ex.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 Ex.coerce(i,a,IYt,l,u)}return LYt(i,a,s,o,n),PYt(i,a,s,o),a}function qXe(e,t,r){var n=Math.min(t/e.width,r/e.height);return[n,e,t+\"x\"+r]}function OYt(e,t){var r=Math.sqrt(e.width/2*(e.width/2)+e.height*e.height),n=t/r;return[n,e,t]}function BXe(e,t,r,n){var i=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\"),a=hw.select(i);return a.text(e).attr(\"x\",0).attr(\"y\",0).attr(\"text-anchor\",r).attr(\"data-unformatted\",e).call(R7.convertToTspans,n).call(fw.font,t),fw.bBox(a.node())}function I7(e,t,r,n,i,a){var o=\"_cache\"+t;e[o]&&e[o].key===i||(e[o]={key:i,value:r});var s=Ex.aggNums(a,null,[e[o].value,n],2);return e[o].value=s,s}});var GXe=ye((d2r,VXe)=>{\"use strict\";VXe.exports={moduleType:\"trace\",name:\"indicator\",basePlotModule:TXe(),categories:[\"svg\",\"noOpacity\",\"noHover\"],animatable:!0,attributes:r$(),supplyDefaults:RXe().supplyDefaults,calc:FXe().calc,plot:UXe(),meta:{}}});var jXe=ye((v2r,HXe)=>{\"use strict\";HXe.exports=GXe()});var a$=ye((g2r,YXe)=>{\"use strict\";var WXe=Ub(),D7=Ao().extendFlat,qYt=mc().overrideAll,XXe=ec(),BYt=Cc().attributes,ZXe=df().descriptionOnlyNumbers,p2r=YXe.exports=qYt({domain:BYt({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:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:28},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))},cells:{values:{valType:\"data_array\",dflt:[]},format:{valType:\"data_array\",dflt:[],description:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:20},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))}},\"calc\",\"from-root\")});var JXe=ye((m2r,KXe)=>{\"use strict\";var o$=Dr(),NYt=a$(),UYt=Cc().defaults;function VYt(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 GYt=Jm().wrap;$Xe.exports=function(){return GYt({})}});var s$=ye((_2r,eZe)=>{\"use strict\";eZe.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 uZe=ye((x2r,lZe)=>{\"use strict\";var tZe=s$(),u$=Ao().extendFlat,HYt=Eo(),jYt=vv().isTypedArray,F7=vv().isArrayOrTypedArray;lZe.exports=function(t,r){var n=l$(r.cells.values),i=function(g){return g.slice(r.header.values.length,g.length)},a=l$(r.header.values);a.length&&!a[0].length&&(a[0]=[\"\"],a=l$(a));var o=a.concat(i(n).map(function(){return sZe((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}):[tZe.emptyHeaderHeight],f=n.length?n[0].map(function(){return r.cells.height}):[],h=c.reduce(rZe,0),d=u-h,v=d+tZe.uplift,_=aZe(f,v),b=aZe(c,h),p=nZe(b,[]),k=nZe(_,p),E={},S=r._fullInput.columnorder;F7(S)&&(S=Array.from(S)),S=S.concat(i(n.map(function(g,P){return P})));var L=o.map(function(g,P){var T=F7(r.columnwidth)?r.columnwidth[Math.min(P,r.columnwidth.length-1)]:r.columnwidth;return HYt(T)?Number(T):1}),x=L.reduce(rZe,0);L=L.map(function(g){return g/x*l});var C=Math.max(c$(r.header.line.width),c$(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:S,groupHeight:u,rowBlocks:k,headerRowBlocks:p,scrollY:0,cells:u$({},r.cells,{values:n}),headerCells:u$({},r.header,{values:o}),gdColumns:o.map(function(g){return g[0]}),gdColumnsOriginalOrder:o.map(function(g){return g[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:o.map(function(g,P){var T=E[g];E[g]=(T||0)+1;var z=g+\"__\"+E[g];return{key:z,label:g,specIndex:P,xIndex:S[P],xScale:iZe,x:void 0,calcdata:void 0,columnWidth:L[P]}})};return M.columns.forEach(function(g){g.calcdata=M,g.x=iZe(g)}),M};function c$(e){if(F7(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=oZe(),i+=a,s=u+1,a=0);return r}function oZe(){return{firstRowIndex:null,lastRowIndex:null,rows:[]}}});var cZe=ye(f$=>{\"use strict\";var z7=Ao().extendFlat;f$.splitToPanels=function(e){var t=[0,0],r=z7({},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:z7({},e.calcdata,{cells:e.calcdata.headerCells})}),n=z7({},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=z7({},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]};f$.splitToCells=function(e){var t=WYt(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 WYt(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 b$=ye((w2r,bZe)=>{\"use strict\";var Ya=s$(),tf=Oa(),h$=Dr(),XYt=h$.numberFormat,Uu=Jm(),d$=So(),ZYt=ru(),YYt=Dr().raiseToTop,og=Dr().strTranslate,KYt=Dr().cancelTransition,JYt=uZe(),mZe=cZe(),fZe=ka();bZe.exports=function(t,r){var n=!t._context.staticPlot,i=t._fullLayout._paper.selectAll(\".\"+Ya.cn.table).data(r.map(function(k){var E=Uu.unwrap(k),S=E.trace;return JYt(t,S)}),Uu.keyFun);i.exit().remove(),i.enter().append(\"g\").classed(Ya.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(k){return k.width+k.size.l+k.size.r}).attr(\"height\",function(k){return k.height+k.size.t+k.size.b}).attr(\"transform\",function(k){return og(k.translateX,k.translateY)});var a=i.selectAll(\".\"+Ya.cn.tableControlView).data(Uu.repeat,Uu.keyFun),o=a.enter().append(\"g\").classed(Ya.cn.tableControlView,!0).style(\"box-sizing\",\"content-box\");if(n){var s=\"onwheel\"in document?\"wheel\":\"mousewheel\";o.on(\"mousemove\",function(k){a.filter(function(E){return k===E}).call(nC,t)}).on(s,function(k){if(!k.scrollbarState.wheeling){k.scrollbarState.wheeling=!0;var E=k.scrollY+tf.event.deltaY,S=q7(t,a,null,E)(k);S||(tf.event.stopPropagation(),tf.event.preventDefault()),k.scrollbarState.wheeling=!1}}).call(nC,t,!0)}a.attr(\"transform\",function(k){return og(k.size.l,k.size.t)});var l=a.selectAll(\".\"+Ya.cn.scrollBackground).data(Uu.repeat,Uu.keyFun);l.enter().append(\"rect\").classed(Ya.cn.scrollBackground,!0).attr(\"fill\",\"none\"),l.attr(\"width\",function(k){return k.width}).attr(\"height\",function(k){return k.height}),a.each(function(k){d$.setClipUrl(tf.select(this),hZe(t,k),t)});var u=a.selectAll(\".\"+Ya.cn.yColumn).data(function(k){return k.columns},Uu.keyFun);u.enter().append(\"g\").classed(Ya.cn.yColumn,!0),u.exit().remove(),u.attr(\"transform\",function(k){return og(k.x,0)}),n&&u.call(tf.behavior.drag().origin(function(k){var E=tf.select(this);return pZe(E,k,-Ya.uplift),YYt(this),k.calcdata.columnDragInProgress=!0,nC(a.filter(function(S){return k.calcdata.key===S.key}),t),k}).on(\"drag\",function(k){var E=tf.select(this),S=function(C){return(k===C?tf.event.x:C.x)+C.columnWidth/2};k.x=Math.max(-Ya.overdrag,Math.min(k.calcdata.width+Ya.overdrag-k.columnWidth,tf.event.x));var L=yZe(u).filter(function(C){return C.calcdata.key===k.calcdata.key}),x=L.sort(function(C,M){return S(C)-S(M)});x.forEach(function(C,M){C.xIndex=M,C.x=k===C?C.x:C.xScale(C)}),u.filter(function(C){return k!==C}).transition().ease(Ya.transitionEase).duration(Ya.transitionDuration).attr(\"transform\",function(C){return og(C.x,0)}),E.call(KYt).attr(\"transform\",og(k.x,-Ya.uplift))}).on(\"dragend\",function(k){var E=tf.select(this),S=k.calcdata;k.x=k.xScale(k),k.calcdata.columnDragInProgress=!1,pZe(E,k,0),sKt(t,S,S.columns.map(function(L){return L.xIndex}))})),u.each(function(k){d$.setClipUrl(tf.select(this),dZe(t,k),t)});var c=u.selectAll(\".\"+Ya.cn.columnBlock).data(mZe.splitToPanels,Uu.keyFun);c.enter().append(\"g\").classed(Ya.cn.columnBlock,!0).attr(\"id\",function(k){return k.key}),c.style(\"cursor\",function(k){return k.dragHandle?\"ew-resize\":k.calcdata.scrollbarState.barWiggleRoom?\"ns-resize\":\"default\"});var f=c.filter(lKt),h=c.filter(y$);n&&h.call(tf.behavior.drag().origin(function(k){return tf.event.stopPropagation(),k}).on(\"drag\",q7(t,a,-1)).on(\"dragend\",function(){})),v$(t,a,f,c),v$(t,a,h,c);var d=a.selectAll(\".\"+Ya.cn.scrollAreaClip).data(Uu.repeat,Uu.keyFun);d.enter().append(\"clipPath\").classed(Ya.cn.scrollAreaClip,!0).attr(\"id\",function(k){return hZe(t,k)});var v=d.selectAll(\".\"+Ya.cn.scrollAreaClipRect).data(Uu.repeat,Uu.keyFun);v.enter().append(\"rect\").classed(Ya.cn.scrollAreaClipRect,!0).attr(\"x\",-Ya.overdrag).attr(\"y\",-Ya.uplift).attr(\"fill\",\"none\"),v.attr(\"width\",function(k){return k.width+2*Ya.overdrag}).attr(\"height\",function(k){return k.height+Ya.uplift});var _=u.selectAll(\".\"+Ya.cn.columnBoundary).data(Uu.repeat,Uu.keyFun);_.enter().append(\"g\").classed(Ya.cn.columnBoundary,!0);var b=u.selectAll(\".\"+Ya.cn.columnBoundaryClippath).data(Uu.repeat,Uu.keyFun);b.enter().append(\"clipPath\").classed(Ya.cn.columnBoundaryClippath,!0),b.attr(\"id\",function(k){return dZe(t,k)});var p=b.selectAll(\".\"+Ya.cn.columnBoundaryRect).data(Uu.repeat,Uu.keyFun);p.enter().append(\"rect\").classed(Ya.cn.columnBoundaryRect,!0).attr(\"fill\",\"none\"),p.attr(\"width\",function(k){return k.columnWidth+2*O7(k)}).attr(\"height\",function(k){return k.calcdata.height+2*O7(k)+Ya.uplift}).attr(\"x\",function(k){return-O7(k)}).attr(\"y\",function(k){return-O7(k)}),_$(null,h,a)};function O7(e){return Math.ceil(e.calcdata.maxLineWidth/2)}function hZe(e,t){return\"clip\"+e._fullLayout._uid+\"_scrollAreaBottomClip_\"+t.key}function dZe(e,t){return\"clip\"+e._fullLayout._uid+\"_columnBoundaryClippath_\"+t.calcdata.key+\"_\"+t.specIndex}function yZe(e){return[].concat.apply([],e.map(function(t){return t})).map(function(t){return t.__data__})}function nC(e,t,r){function n(u){var c=u.rowBlocks;return g$(c,c.length-1)+(c.length?B7(c[c.length-1],1/0):1)}var i=e.selectAll(\".\"+Ya.cn.scrollbarKit).data(Uu.repeat,Uu.keyFun);i.enter().append(\"g\").classed(Ya.cn.scrollbarKit,!0).style(\"shape-rendering\",\"geometricPrecision\"),i.each(function(u){var c=u.scrollbarState;c.totalHeight=n(u),c.scrollableAreaHeight=u.groupHeight-p$(u),c.currentlyVisibleHeight=Math.min(c.totalHeight,c.scrollableAreaHeight),c.ratio=c.currentlyVisibleHeight/c.totalHeight,c.barLength=Math.max(c.ratio*c.currentlyVisibleHeight,Ya.goldenRatio*Ya.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+Ya.scrollbarWidth/2+Ya.scrollbarOffset;return og(c,p$(u))});var a=i.selectAll(\".\"+Ya.cn.scrollbar).data(Uu.repeat,Uu.keyFun);a.enter().append(\"g\").classed(Ya.cn.scrollbar,!0);var o=a.selectAll(\".\"+Ya.cn.scrollbarSlider).data(Uu.repeat,Uu.keyFun);o.enter().append(\"g\").classed(Ya.cn.scrollbarSlider,!0),o.attr(\"transform\",function(u){return og(0,u.scrollbarState.topY||0)});var s=o.selectAll(\".\"+Ya.cn.scrollbarGlyph).data(Uu.repeat,Uu.keyFun);s.enter().append(\"line\").classed(Ya.cn.scrollbarGlyph,!0).attr(\"stroke\",\"black\").attr(\"stroke-width\",Ya.scrollbarWidth).attr(\"stroke-linecap\",\"round\").attr(\"y1\",Ya.scrollbarWidth/2),s.attr(\"y2\",function(u){return u.scrollbarState.barLength-Ya.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(Ya.scrollbarHideDelay).duration(Ya.scrollbarHideDuration).attr(\"stroke-opacity\",0);var l=a.selectAll(\".\"+Ya.cn.scrollbarCaptureZone).data(Uu.repeat,Uu.keyFun);l.enter().append(\"line\").classed(Ya.cn.scrollbarCaptureZone,!0).attr(\"stroke\",\"white\").attr(\"stroke-opacity\",.01).attr(\"stroke-width\",Ya.scrollbarCaptureWidth).attr(\"stroke-linecap\",\"butt\").attr(\"y1\",0).on(\"mousedown\",function(u){var c=tf.event.y,f=this.getBoundingClientRect(),h=u.scrollbarState,d=c-f.top,v=tf.scale.linear().domain([0,h.scrollableAreaHeight]).range([0,h.totalHeight]).clamp(!0);h.topY<=d&&d<=h.bottomY||q7(t,e,null,v(d-h.barLength/2))(u)}).call(tf.behavior.drag().origin(function(u){return tf.event.stopPropagation(),u.scrollbarState.scrollbarScrollInProgress=!0,u}).on(\"drag\",q7(t,e)).on(\"dragend\",function(){})),l.attr(\"y2\",function(u){return u.scrollbarState.scrollableAreaHeight}),t._context.staticPlot&&(s.remove(),l.remove())}function v$(e,t,r,n){var i=$Yt(r),a=QYt(i);iKt(a);var o=eKt(a);aKt(o);var s=rKt(a),l=tKt(s);nKt(l),_Ze(l,t,n,e),x$(a)}function $Yt(e){var t=e.selectAll(\".\"+Ya.cn.columnCells).data(Uu.repeat,Uu.keyFun);return t.enter().append(\"g\").classed(Ya.cn.columnCells,!0),t.exit().remove(),t}function QYt(e){var t=e.selectAll(\".\"+Ya.cn.columnCell).data(mZe.splitToCells,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.columnCell,!0),t.exit().remove(),t}function eKt(e){var t=e.selectAll(\".\"+Ya.cn.cellRect).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"rect\").classed(Ya.cn.cellRect,!0),t}function tKt(e){var t=e.selectAll(\".\"+Ya.cn.cellText).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"text\").classed(Ya.cn.cellText,!0).style(\"cursor\",function(){return\"auto\"}).on(\"mousedown\",function(){tf.event.stopPropagation()}),t}function rKt(e){var t=e.selectAll(\".\"+Ya.cn.cellTextHolder).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.cellTextHolder,!0).style(\"shape-rendering\",\"geometricPrecision\"),t}function iKt(e){e.each(function(t,r){var n=t.calcdata.cells.font,i=t.column.specIndex,a={size:Yv(n.size,i,r),color:Yv(n.color,i,r),family:Yv(n.family,i,r),weight:Yv(n.weight,i,r),style:Yv(n.style,i,r),variant:Yv(n.variant,i,r),textcase:Yv(n.textcase,i,r),lineposition:Yv(n.lineposition,i,r),shadow:Yv(n.shadow,i,r)};t.rowNumber=t.key,t.align=Yv(t.calcdata.cells.align,i,r),t.cellBorderWidth=Yv(t.calcdata.cells.line.width,i,r),t.font=a})}function nKt(e){e.each(function(t){d$.font(tf.select(this),t.font)})}function aKt(e){e.attr(\"width\",function(t){return t.column.columnWidth}).attr(\"stroke-width\",function(t){return t.cellBorderWidth}).each(function(t){var r=tf.select(this);fZe.stroke(r,Yv(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),fZe.fill(r,Yv(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}function _Ze(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=oKt(s);i.latex=f;var h=f?\"\":Yv(i.calcdata.cells.prefix,a,o)||\"\",d=f?\"\":Yv(i.calcdata.cells.suffix,a,o)||\"\",v=f?null:Yv(i.calcdata.cells.format,a,o)||null,_=h+(v?XYt(v)(i.value):i.value)+d,b;i.wrappingNeeded=!i.wrapped&&!c&&!f&&(b=vZe(_)),i.cellHeightMayIncrease=u||f||i.mayHaveMarkup||(b===void 0?vZe(_):b),i.needsConvertToTspans=i.mayHaveMarkup||i.wrappingNeeded||i.latex;var p;if(i.wrappingNeeded){var k=Ya.wrapSplitCharacter===\" \"?_.replace(/i&&n.push(a),i+=l}return n}function _$(e,t,r){var n=yZe(t)[0];if(n!==void 0){var i=n.rowBlocks,a=n.calcdata,o=g$(i,i.length),s=n.calcdata.groupHeight-p$(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),u=uKt(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=g$(c.rowBlocks,c.page)-c.scrollY;return og(0,f)}),e&&(gZe(e,r,t,u,n.prevPages,n,0),gZe(e,r,t,u,n.prevPages,n,1),nC(r,e))}}function q7(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*tf.event.dy:n;var c=s.selectAll(\".\"+Ya.cn.yColumn).selectAll(\".\"+Ya.cn.columnBlock).filter(y$);return _$(e,c,s),o.scrollY===u}}function gZe(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]});v$(e,t,l,r),i[o]=n[o]}))}function cKt(e,t,r,n){return function(){var a=tf.select(t.parentNode);a.each(function(o){var s=o.fragments;a.selectAll(\"tspan.line\").each(function(_,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*Ya.cellPad;for(o.value=\"\";u.length;)f=u.shift(),h=f.width+l,d+h>v&&(o.value+=c.join(Ya.wrapSpacer)+Ya.lineBreaker,c=[],d=0),c.push(f.text),d+=h;d&&(o.value+=c.join(Ya.wrapSpacer)),o.wrapped=!0}),a.selectAll(\"tspan.line\").remove(),_Ze(a.select(\".\"+Ya.cn.cellText),r,e,n),tf.select(t.parentNode.parentNode).call(x$)}}function fKt(e,t,r,n,i){return function(){if(!i.settledY){var o=tf.select(t.parentNode),s=m$(i),l=i.key-s.firstRowIndex,u=s.rows[l].rowHeight,c=i.cellHeightMayIncrease?t.parentNode.getBoundingClientRect().height+2*Ya.cellPad:u,f=Math.max(c,u),h=f-s.rows[l].rowHeight;h&&(s.rows[l].rowHeight=f,e.selectAll(\".\"+Ya.cn.columnCell).call(x$),_$(null,e.filter(y$),0),nC(r,n,!0)),o.attr(\"transform\",function(){var d=this,v=d.parentNode,_=v.getBoundingClientRect(),b=tf.select(d.parentNode).select(\".\"+Ya.cn.cellRect).node().getBoundingClientRect(),p=d.transform.baseVal.consolidate(),k=b.top-_.top+(p?p.matrix.f:Ya.cellPad);return og(xZe(i,tf.select(d.parentNode).select(\".\"+Ya.cn.cellTextHolder).node().getBoundingClientRect().width),k)}),i.settledY=!0}}}function xZe(e,t){switch(e.align){case\"left\":return Ya.cellPad;case\"right\":return e.column.columnWidth-(t||0)-Ya.cellPad;case\"center\":return(e.column.columnWidth-(t||0))/2;default:return Ya.cellPad}}function x$(e){e.attr(\"transform\",function(t){var r=t.rowBlocks[0].auxiliaryBlocks.reduce(function(o,s){return o+B7(s,1/0)},0),n=m$(t),i=B7(n,t.key),a=i+r;return og(0,a)}).selectAll(\".\"+Ya.cn.cellRect).attr(\"height\",function(t){return dKt(m$(t),t.key).rowHeight})}function g$(e,t){for(var r=0,n=t-1;n>=0;n--)r+=hKt(e[n]);return r}function B7(e,t){for(var r=0,n=0;n{\"use strict\";var vKt=Id().getModuleCalcData,pKt=b$(),N7=\"table\";U7.name=N7;U7.plot=function(e){var t=vKt(e.calcdata,N7)[0];t.length&&pKt(e,t)};U7.clean=function(e,t,r,n){var i=n._has&&n._has(N7),a=t._has&&t._has(N7);i&&!a&&n._paperdiv.selectAll(\".table\").remove()}});var AZe=ye((A2r,TZe)=>{\"use strict\";TZe.exports={attributes:a$(),supplyDefaults:JXe(),calc:QXe(),plot:b$(),moduleType:\"trace\",name:\"table\",basePlotModule:wZe(),categories:[\"noOpacity\"],meta:{}}});var MZe=ye((S2r,SZe)=>{\"use strict\";SZe.exports=AZe()});var PZe=ye((M2r,LZe)=>{\"use strict\";var EZe=ec(),kZe=Lh(),w$=Rd(),gKt=df().descriptionWithDates,mKt=mc().overrideAll,CZe=Pd().dash,T$=Ao().extendFlat;LZe.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:EZe({editType:\"calc\"}),offset:{valType:\"number\",dflt:10,editType:\"calc\"},editType:\"calc\"},type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"date\",\"category\"],dflt:\"-\",editType:\"calc\"},autotypenumbers:w$.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:T$({},w$.labelalias,{editType:\"calc\"}),tickfont:EZe({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\",\"SI extended\"],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:gKt(\"tick label\")},tickformatstops:mKt(w$.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:kZe.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:T$({},CZe,{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:T$({},CZe,{editType:\"calc\"}),minorgridcolor:{valType:\"color\",dflt:kZe.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 G7=ye((E2r,DZe)=>{\"use strict\";var yKt=ec(),IZe=PZe(),RZe=Lh(),V7=yKt({editType:\"calc\"}),_Kt=pf().zorder;V7.family.dflt='\"Open Sans\", verdana, arial, sans-serif';V7.size.dflt=12;V7.color.dflt=RZe.defaultLine;DZe.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:IZe,baxis:IZe,font:V7,color:{valType:\"color\",dflt:RZe.defaultLine,editType:\"plot\"},zorder:_Kt}});var OZe=ye((k2r,zZe)=>{\"use strict\";var FZe=Dr().isArray1D;zZe.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||FZe(i))&&(!s||FZe(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 NZe=ye((C2r,BZe)=>{\"use strict\";var xKt=G7(),qZe=ka().addOpacity,bKt=qa(),aC=Dr(),wKt=bb(),TKt=e_(),AKt=t_(),SKt=aI(),MKt=ym(),EKt=I3();BZe.exports=function(t,r,n){var i=n.letter,a=n.font||{},o=xKt[i+\"axis\"];function s(g,P){return aC.coerce(t,r,o,g,P)}function l(g,P){return aC.coerce2(t,r,o,g,P)}n.name&&(r._name=n.name,r._id=n.name),s(\"autotypenumbers\",n.autotypenumbersDflt);var u=s(\"type\");if(u===\"-\"&&(n.data&&kKt(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=bKt.getComponentMethod(\"calendars\",\"handleDefaults\");c(t,r,\"calendar\",n.calendar)}MKt(r,n.fullLayout),r.c2p=aC.identity;var f=s(\"color\",n.dfltColor),h=f===t.color?f:a.color,d=s(\"title.text\");d&&(aC.coerceFont(s,\"title.font\",a,{overrideDflt:{size:aC.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\"),wKt(t,r,s,u),AKt(t,r,s,u,n),TKt(t,r,s,u,n),SKt(t,r,s,{data:n.data,dataAttr:i});var _=l(\"gridcolor\",qZe(f,.3)),b=l(\"gridwidth\"),p=l(\"griddash\"),k=s(\"showgrid\");k||(delete r.gridcolor,delete r.gridwidth,delete r.griddash);var E=l(\"startlinecolor\",f),S=l(\"startlinewidth\",b),L=s(\"startline\",r.showgrid||!!E||!!S);L||(delete r.startlinecolor,delete r.startlinewidth);var x=l(\"endlinecolor\",f),C=l(\"endlinewidth\",b),M=s(\"endline\",r.showgrid||!!x||!!C);return M||(delete r.endlinecolor,delete r.endlinewidth),k?(s(\"minorgridcount\"),s(\"minorgridwidth\",b),s(\"minorgriddash\",p),s(\"minorgridcolor\",qZe(_,.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 kKt(e,t){if(e.type===\"-\"){var r=e._id,n=r.charAt(0),i=n+\"calendar\",a=e[i];e.type=EKt(t,a,{autotypenumbers:e.autotypenumbers})}}});var VZe=ye((L2r,UZe)=>{\"use strict\";var CKt=NZe(),LKt=vl();UZe.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\")),PKt(t,r,n,a)};function PKt(e,t,r,n){var i=[\"aaxis\",\"baxis\"];i.forEach(function(a){var o=a.charAt(0),s=e[a]||{},l=LKt.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};CKt(s,l,u),l._categories=l._categories||[],!e[a]&&s.type!==\"-\"&&(e[a]={type:s.type})})}});var jZe=ye((P2r,HZe)=>{\"use strict\";var GZe=Dr(),IKt=OZe(),RKt=VZe(),DKt=G7(),FKt=Lh();HZe.exports=function(t,r,n,i){function a(l,u){return GZe.coerce(t,r,DKt,l,u)}r._clipPathId=\"clip\"+r.uid+\"carpet\";var o=a(\"color\",FKt.defaultLine);if(GZe.coerceFont(a,\"font\",i.font),a(\"carpet\"),RKt(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=IKt(t,r,a);s||(r.visible=!1),r._cheater&&a(\"cheaterslope\"),a(\"zorder\")}});var A$=ye((I2r,WZe)=>{\"use strict\";var zKt=Dr().isArrayOrTypedArray;WZe.exports=function(t,r,n){var i;for(zKt(t)?t.length>r.length&&(t=t.slice(0,r.length)):t=[],i=0;i{\"use strict\";XZe.exports=function(t,r,n){if(t.length===0)return\"\";var i,a=[],o=n?3:1;for(i=0;i{\"use strict\";ZZe.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 iYe=ye((F2r,rYe)=>{\"use strict\";var X7=Oa(),H7=So(),j7=A$(),$Ze=S$(),oC=YZe(),M$=ru(),Up=Dr(),QZe=Up.strRotate,W7=Up.strTranslate,eYe=$h();rYe.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=X7.select(this),h=c[0],d=h.trace,v=d.aaxis,_=d.baxis,b=Up.ensureSingle(f,\"g\",\"minorlayer\"),p=Up.ensureSingle(f,\"g\",\"majorlayer\"),k=Up.ensureSingle(f,\"g\",\"boundarylayer\"),E=Up.ensureSingle(f,\"g\",\"labellayer\");f.style(\"opacity\",d.opacity),q5(o,s,p,v,\"a\",v._gridlines,!0,a),q5(o,s,p,_,\"b\",_._gridlines,!0,a),q5(o,s,b,v,\"a\",v._minorgridlines,!0,a),q5(o,s,b,_,\"b\",_._minorgridlines,!0,a),q5(o,s,k,v,\"a-boundary\",v._boundarylines,a),q5(o,s,k,_,\"b-boundary\",_._boundarylines,a);var S=KZe(t,o,s,d,h,E,v._labels,\"a-label\"),L=KZe(t,o,s,d,h,E,_._labels,\"b-label\");qKt(t,E,d,h,o,s,S,L),OKt(d,h,u,o,s)})};function OKt(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(H7.font,f.font).text(f.text).call(M$.convertToTspans,e),p=H7.bBox(this);b.attr(\"transform\",W7(d.p[0],d.p[1])+QZe(d.angle)+W7(f.axis.labelpadding*_,p.height*.3)),u=Math.max(u,p.width+f.axis.labelpadding)}),l.exit().remove(),c.maxExtent=u,c}function qKt(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),_=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,oC(r,i,a,c,r.dxydb_rough(l,u))),JZe(e,t,r,n,c,f,r.aaxis,i,a,o,\"a-title\"),l=h,u=.5*(v+_),c=r.ab2xy(l,u,!0),f=r.dxydb_rough(l,u),s.angle===void 0&&Up.extendFlat(s,oC(r,i,a,c,r.dxyda_rough(l,u))),JZe(e,t,r,n,c,f,r.baxis,i,a,s,\"b-title\")}var tYe=eYe.LINE_SPACING,BKt=(1-eYe.MID_SHIFT)/tYe+1;function JZe(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=oC(r,s,l,i,a);[\"start\",\"both\"].indexOf(o.showticklabels)===-1&&(d=0);var _=o.title.font.size;d+=_+o.title.offset;var b=u.angle+(u.flip<0?180:0),p=(b-v.angle+450)%360,k=p>90&&p<270,E=X7.select(this);E.text(o.title.text).call(M$.convertToTspans,e),k&&(d=(-M$.lineCount(E)+BKt)*tYe*_-d),E.attr(\"transform\",W7(v.p[0],v.p[1])+QZe(v.angle)+W7(0,d)).attr(\"text-anchor\",\"middle\").call(H7.font,o.title.font)}),h.exit().remove()}});var aYe=ye((z2r,nYe)=>{\"use strict\";var Z7=Dr().isArrayOrTypedArray;nYe.exports=function(e,t,r){var n,i,a,o,s,l,u=[],c=Z7(e)?e.length:e,f=Z7(t)?t.length:t,h=Z7(e)?e:null,d=Z7(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,_=1/0,b=-1/0;for(i=0;i{\"use strict\";var oYe=Dr().isArrayOrTypedArray;lYe.exports=function(e){return sYe(e,0)};function sYe(e,t){if(!oYe(e)||t>=10)return null;for(var r=1/0,n=-1/0,i=e.length,a=0;a{\"use strict\";var NKt=ho(),kx=Ao().extendFlat;cYe.exports=function(t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p,k=t[\"_\"+r],E=t[r+\"axis\"],S=E._gridlines=[],L=E._minorgridlines=[],x=E._boundarylines=[],C=t[\"_\"+n],M=t[n+\"axis\"];E.tickmode===\"array\"&&(E.tickvals=k.slice());var g=t._xctrl,P=t._yctrl,T=g[0].length,z=g.length,O=t._a.length,V=t._b.length;NKt.prepTicks(E),E.tickmode===\"array\"&&delete E.tickvals;var G=E.smoothing?3:1;function Z(N){var j,re,oe,_e,Ee,Ce,me,ie,Se,Le,Ae,Fe,Pe=[],ge=[],Re={};if(r===\"b\")for(re=t.b2j(N),oe=Math.floor(Math.max(0,Math.min(V-2,re))),_e=re-oe,Re.length=V,Re.crossLength=O,Re.xy=function(ce){return t.evalxy([],ce,re)},Re.dxy=function(ce,Ze){return t.dxydi([],ce,oe,Ze,_e)},j=0;j0&&(Se=t.dxydi([],j-1,oe,0,_e),Pe.push(Ee[0]+Se[0]/3),ge.push(Ee[1]+Se[1]/3),Le=t.dxydi([],j-1,oe,1,_e),Pe.push(ie[0]-Le[0]/3),ge.push(ie[1]-Le[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;else for(j=t.a2i(N),Ce=Math.floor(Math.max(0,Math.min(O-2,j))),me=j-Ce,Re.length=O,Re.crossLength=V,Re.xy=function(ce){return t.evalxy([],j,ce)},Re.dxy=function(ce,Ze){return t.dxydj([],Ce,ce,me,Ze)},re=0;re0&&(Ae=t.dxydj([],Ce,re-1,me,0),Pe.push(Ee[0]+Ae[0]/3),ge.push(Ee[1]+Ae[1]/3),Fe=t.dxydj([],Ce,re-1,me,1),Pe.push(ie[0]-Fe[0]/3),ge.push(ie[1]-Fe[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;return Re.axisLetter=r,Re.axis=E,Re.crossAxis=M,Re.value=N,Re.constvar=n,Re.index=f,Re.x=Pe,Re.y=ge,Re.smoothing=M.smoothing,Re}function H(N){var j,re,oe,_e,Ee,Ce=[],me=[],ie={};if(ie.length=k.length,ie.crossLength=C.length,r===\"b\")for(oe=Math.max(0,Math.min(V-2,N)),Ee=Math.min(1,Math.max(0,N-oe)),ie.xy=function(Se){return t.evalxy([],Se,N)},ie.dxy=function(Se,Le){return t.dxydi([],Se,oe,Le,Ee)},j=0;jk.length-1)&&S.push(kx(H(a),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u;fk.length-1)&&!(v<0||v>k.length-1))for(_=k[o],b=k[v],i=0;ik[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash})));E.startline&&x.push(kx(H(0),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(H(k.length-1),{color:E.endlinecolor,width:E.endlinewidth}))}else{for(s=5e-15,l=[Math.floor((k[k.length-1]-E.tick0)/E.dtick*(1+s)),Math.ceil((k[0]-E.tick0)/E.dtick/(1+s))].sort(function(N,j){return N-j}),u=l[0],c=l[1],f=u;f<=c;f++)h=E.tick0+E.dtick*f,S.push(kx(Z(h),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u-1;fk[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash}));E.startline&&x.push(kx(Z(k[0]),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(Z(k[k.length-1]),{color:E.endlinecolor,width:E.endlinewidth}))}}});var pYe=ye((B2r,vYe)=>{\"use strict\";var hYe=ho(),dYe=Ao().extendFlat;vYe.exports=function(t,r){var n,i,a,o,s,l=r._labels=[],u=r._gridlines;for(n=0;n{\"use strict\";gYe.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 _Ye=ye((U2r,yYe)=>{\"use strict\";var UKt=Dr();yYe.exports=function(t,r,n){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(oe,_e){var Ee=0,Ce,me=0;return oe>0&&(Ce=t[_e][oe-1])!==void 0&&(me++,Ee+=Ce),oe0&&(Ce=t[_e-1][oe])!==void 0&&(me++,Ee+=Ce),_e0&&a0&&iM);return UKt.log(\"Smoother converged to\",g,\"after\",T,\"iterations\"),t}});var bYe=ye((V2r,xYe)=>{\"use strict\";xYe.exports={RELATIVE_CULL_TOLERANCE:1e-6}});var AYe=ye((G2r,TYe)=>{\"use strict\";var wYe=.5;TYe.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,wYe/2),c=Math.pow(s*s+l*l,wYe/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 MYe=ye((H2r,SYe)=>{\"use strict\";var E$=AYe(),Y7=Dr().ensureArray;function B5(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]}SYe.exports=function(t,r,n,i,a,o){var s,l,u,c,f,h,d,v,_,b,p=n[0].length,k=n.length,E=a?3*p-2:p,S=o?3*k-2:k;for(t=Y7(t,S),r=Y7(r,S),u=0;u{\"use strict\";EYe.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,_,b=Math.max(0,Math.min(Math.floor(l),a)),p=Math.max(0,Math.min(Math.floor(u),o)),k=Math.max(0,Math.min(1,l-b)),E=Math.max(0,Math.min(1,u-p));b*=3,p*=3;var S=k*k,L=S*k,x=1-k,C=x*x,M=C*x,g=E*E,P=g*E,T=1-E,z=T*T,O=z*T;for(_=0;_{\"use strict\";CYe.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,_=1-o,b=_*_,p=_*o*2,k=-3*b,E=3*(b-p),S=3*(p-v),L=3*v,x=s*s,C=x*s,M=1-s,g=M*M,P=g*M;for(d=0;d{\"use strict\";PYe.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,_=v*o,b=1-o,p=b*b,k=p*b,E=s*s,S=1-s,L=S*S,x=S*s*2,C=-3*L,M=3*(L-x),g=3*(x-E),P=3*E;for(d=0;d{\"use strict\";var RYe=bYe(),DYe=R6().findBin,VKt=MYe(),GKt=kYe(),HKt=LYe(),jKt=IYe();FYe.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*RYe.RELATIVE_CULL_TOLERANCE,_=d*RYe.RELATIVE_CULL_TOLERANCE;l-=v,u+=v,c-=_,f+=_,t.isVisible=function(b,p){return b>l&&bc&&pu||pf},t.setScale=function(){var b=t._x,p=t._y,k=VKt(t._xctrl,t._yctrl,b,p,o.smoothing,s.smoothing);t._xctrl=k[0],t._yctrl=k[1],t.evalxy=GKt([t._xctrl,t._yctrl],i,a,o.smoothing,s.smoothing),t.dxydi=HKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing),t.dxydj=jKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing)},t.i2a=function(b){var p=Math.max(0,Math.floor(b[0]),i-2),k=b[0]-p;return(1-k)*r[p]+k*r[p+1]},t.j2b=function(b){var p=Math.max(0,Math.floor(b[1]),i-2),k=b[1]-p;return(1-k)*n[p]+k*n[p+1]},t.ij2ab=function(b){return[t.i2a(b[0]),t.j2b(b[1])]},t.a2i=function(b){var p=Math.max(0,Math.min(DYe(b,r),i-2)),k=r[p],E=r[p+1];return Math.max(0,Math.min(i-1,p+(b-k)/(E-k)))},t.b2j=function(b){var p=Math.max(0,Math.min(DYe(b,n),a-2)),k=n[p],E=n[p+1];return Math.max(0,Math.min(a-1,p+(b-k)/(E-k)))},t.ab2ij=function(b){return[t.a2i(b[0]),t.b2j(b[1])]},t.i2c=function(b,p){return t.evalxy([],b,p)},t.ab2xy=function(b,p,k){if(!k&&(br[i-1]|pn[a-1]))return[!1,!1];var E=t.a2i(b),S=t.b2j(p),L=t.evalxy([],E,S);if(k){var x=0,C=0,M=[],g,P,T,z;br[i-1]?(g=i-2,P=1,x=(b-r[i-1])/(r[i-1]-r[i-2])):(g=Math.max(0,Math.min(i-2,Math.floor(E))),P=E-g),pn[a-1]?(T=a-2,z=1,C=(p-n[a-1])/(n[a-1]-n[a-2])):(T=Math.max(0,Math.min(a-2,Math.floor(S))),z=S-T),x&&(t.dxydi(M,g,T,P,z),L[0]+=M[0]*x,L[1]+=M[1]*x),C&&(t.dxydj(M,g,T,P,z),L[0]+=M[0]*C,L[1]+=M[1]*C)}return L},t.c2p=function(b,p,k){return[p.c2p(b[0]),k.c2p(b[1])]},t.p2x=function(b,p,k){return[p.p2c(b[0]),k.p2c(b[1])]},t.dadi=function(b){var p=Math.max(0,Math.min(r.length-2,b));return r[p+1]-r[p]},t.dbdj=function(b){var p=Math.max(0,Math.min(n.length-2,b));return n[p+1]-n[p]},t.dxyda=function(b,p,k,E){var S=t.dxydi(null,b,p,k,E),L=t.dadi(b,k);return[S[0]/L,S[1]/L]},t.dxydb=function(b,p,k,E){var S=t.dxydj(null,b,p,k,E),L=t.dbdj(p,E);return[S[0]/L,S[1]/L]},t.dxyda_rough=function(b,p,k){var E=h*(k||.1),S=t.ab2xy(b+E,p,!0),L=t.ab2xy(b-E,p,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dxydb_rough=function(b,p,k){var E=d*(k||.1),S=t.ab2xy(b,p+E,!0),L=t.ab2xy(b,p-E,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dpdx=function(b){return b._m},t.dpdy=function(b){return b._m}}});var HYe=ye((Y2r,GYe)=>{\"use strict\";var K7=ho(),OYe=Dr().isArray1D,WKt=aYe(),qYe=uYe(),BYe=fYe(),NYe=pYe(),XKt=mYe(),UYe=n8(),VYe=_Ye(),ZKt=r8(),YKt=zYe();GYe.exports=function(t,r){var n=K7.getFromId(t,r.xaxis),i=K7.getFromId(t,r.yaxis),a=r.aaxis,o=r.baxis,s=r.x,l=r.y,u=[];s&&OYe(s)&&u.push(\"x\"),l&&OYe(l)&&u.push(\"y\"),u.length&&ZKt(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=WKt(d,v,r.cheaterslope)}r._x=s=UYe(s),r._y=l=UYe(l),VYe(s,c,f),VYe(l,c,f),YKt(r),r.setScale();var _=qYe(s),b=qYe(l),p=.5*(_[1]-_[0]),k=.5*(_[1]+_[0]),E=.5*(b[1]-b[0]),S=.5*(b[1]+b[0]),L=1.3;return _=[k-p*L,k+p*L],b=[S-E*L,S+E*L],r._extremes[n._id]=K7.findExtremes(n,_,{padded:!0}),r._extremes[i._id]=K7.findExtremes(i,b,{padded:!0}),BYe(r,\"a\",\"b\"),BYe(r,\"b\",\"a\"),NYe(r,a),NYe(r,o),h.clipsegments=XKt(r._xctrl,r._yctrl,a,o),h.x=s,h.y=l,h.a=c,h.b=f,[h]}});var WYe=ye((K2r,jYe)=>{\"use strict\";jYe.exports={attributes:G7(),supplyDefaults:jZe(),plot:iYe(),calc:HYe(),animatable:!0,isContainer:!0,moduleType:\"trace\",name:\"carpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"carpetAxis\",\"notLegendIsolatable\",\"noMultiCategory\",\"noHover\",\"noSortingByValue\"],meta:{}}});var ZYe=ye((J2r,XYe)=>{\"use strict\";XYe.exports=WYe()});var k$=ye(($2r,JYe)=>{\"use strict\";var KKt=kg(),u0=pf(),JKt=Gl(),{hovertemplateAttrs:$Kt,texttemplateAttrs:QKt,templatefallbackAttrs:YYe}=Ll(),KYe=Tu(),Cx=Ao().extendFlat,sg=u0.marker,N5=u0.line,eJt=sg.line;JYe.exports={carpet:{valType:\"string\",editType:\"calc\"},a:{valType:\"data_array\",editType:\"calc\"},b:{valType:\"data_array\",editType:\"calc\"},mode:Cx({},u0.mode,{dflt:\"markers\"}),text:Cx({},u0.text,{}),texttemplate:QKt({editType:\"plot\"},{keys:[\"a\",\"b\",\"text\"]}),texttemplatefallback:YYe({editType:\"plot\"}),hovertext:Cx({},u0.hovertext,{}),line:{color:N5.color,width:N5.width,dash:N5.dash,backoff:N5.backoff,shape:Cx({},N5.shape,{values:[\"linear\",\"spline\"]}),smoothing:N5.smoothing,editType:\"calc\"},connectgaps:u0.connectgaps,fill:Cx({},u0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:KKt(),marker:Cx({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:Cx({width:eJt.width,editType:\"calc\"},KYe(\"marker.line\")),gradient:sg.gradient,editType:\"calc\"},KYe(\"marker\")),textfont:u0.textfont,textposition:u0.textposition,selected:u0.selected,unselected:u0.unselected,hoverinfo:Cx({},JKt.hoverinfo,{flags:[\"a\",\"b\",\"text\",\"name\"]}),hoveron:u0.hoveron,hovertemplate:$Kt(),hovertemplatefallback:YYe(),zorder:u0.zorder}});var tKe=ye((Q2r,eKe)=>{\"use strict\";var $Ye=Dr(),tJt=Sm(),U5=Ru(),rJt=$p(),iJt=R0(),QYe=eT(),nJt=D0(),aJt=Ig(),oJt=k$();eKe.exports=function(t,r,n,i){function a(h,d){return $Ye.coerce(t,r,oJt,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(\"texttemplatefallback\"),a(\"hovertext\");var u=l{\"use strict\";rKe.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((twr,nKe)=>{\"use strict\";nKe.exports=function(e,t){for(var r=e._fullData.length,n,i=0;i{\"use strict\";var aKe=Eo(),sJt=F0(),lJt=km(),uJt=z0(),cJt=O0().calcMarkerSize,fJt=J7();oKe.exports=function(t,r){var n=r._carpetTrace=fJt(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 hJt=oT(),lKe=ho(),dJt=So();uKe.exports=function(t,r,n,i){var a,o,s,l=n[0][0].carpet,u=lKe.getFromId(t,l.xaxis||\"x\"),c=lKe.getFromId(t,l.yaxis||\"y\"),f={xaxis:u,yaxis:c,plot:r.plot};for(a=0;a{\"use strict\";var vJt=cT(),pJt=Dr().fillText;fKe.exports=function(t,r,n,i){var a=vJt(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 _=[];function b(E,S){var L;E.labelprefix&&E.labelprefix.length>0?L=E.labelprefix.replace(/ = $/,\"\"):L=E._hovertitle,_.push(L+\": \"+S.toFixed(3)+E.labelsuffix)}if(!h.hovertemplate){var p=f.hi||h.hoverinfo,k=p.split(\"+\");k.indexOf(\"all\")!==-1&&(k=[\"a\",\"b\",\"text\"]),k.indexOf(\"a\")!==-1&&b(d.aaxis,f.a),k.indexOf(\"b\")!==-1&&b(d.baxis,f.b),_.push(\"y: \"+o.yLabel),k.indexOf(\"text\")!==-1&&pJt(f,h,_),o.extraText=_.join(\"
\")}return a}});var vKe=ye((awr,dKe)=>{\"use strict\";dKe.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 gKe=ye((owr,pKe)=>{\"use strict\";pKe.exports={attributes:k$(),supplyDefaults:tKe(),colorbar:$d(),formatLabels:iKe(),calc:sKe(),plot:cKe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:hKe(),selectPoints:fT(),eventData:vKe(),moduleType:\"trace\",name:\"scattercarpet\",basePlotModule:ph(),categories:[\"svg\",\"carpet\",\"symbols\",\"showLegend\",\"carpetDependent\",\"zoomScale\"],meta:{}}});var yKe=ye((swr,mKe)=>{\"use strict\";mKe.exports=gKe()});var C$=ye((lwr,_Ke)=>{\"use strict\";var lg=LT(),g1=k4(),gJt=Tu(),mJt=Ao().extendFlat,ry=g1.contours;_Ke.exports=mJt({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:ry.type,start:ry.start,end:ry.end,size:ry.size,coloring:{valType:\"enumerated\",values:[\"fill\",\"lines\",\"none\"],dflt:\"fill\",editType:\"calc\"},showlines:ry.showlines,showlabels:ry.showlabels,labelfont:ry.labelfont,labelformat:ry.labelformat,operation:ry.operation,value:ry.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},gJt(\"\",{cLetter:\"z\",autoColorDflt:!1}))});var L$=ye((uwr,wKe)=>{\"use strict\";var xKe=Dr(),yJt=QI(),bKe=C$(),_Jt=MG(),xJt=T8(),bJt=A8();wKe.exports=function(t,r,n,i){function a(u,c){return xKe.coerce(t,r,bKe,u,c)}function o(u){return xKe.coerce2(t,r,bKe,u)}if(a(\"carpet\"),t.a&&t.b){var s=yJt(t,r,a,i,\"a\",\"b\");if(!s){r.visible=!1;return}a(\"text\");var l=a(\"contours.type\")===\"constraint\";l?_Jt(t,r,a,i,n,{hasHover:!1}):(xJt(t,r,a,o),bJt(t,r,a,i,{hasHover:!1}))}else r._defaultColor=n,r._length=null;a(\"zorder\")}});var MKe=ye((cwr,SKe)=>{\"use strict\";var wJt=gv(),TKe=Dr(),TJt=r8(),AJt=n8(),SJt=a8(),MJt=o8(),AKe=YV(),EJt=L$(),kJt=J7(),CJt=vG();SKe.exports=function(t,r){var n=r._carpetTrace=kJt(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),EJt(a,r,r._defaultColor,t._fullLayout)}var o=LJt(t,r);return CJt(r,r._z),o}};function LJt(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,TKe.isArray1D(t.z)&&TJt(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=AJt(t._z||t.z,t.transpose),t._emptypoints=MJt(f),SJt(f,t._emptypoints);var h=TKe.maxRowLength(f),d=t.xtype===\"scaled\"?\"\":a,v=AKe(t,d,o,s,h,n),_=t.ytype===\"scaled\"?\"\":l,b=AKe(t,_,u,c,f.length,i),p={a:v,b,z:f};return t.contours.type===\"levels\"&&t.contours.coloring!==\"none\"&&wJt(e,t,{vals:f,containerStr:\"\",cLetter:\"z\"}),[p]}});var kKe=ye((fwr,EKe)=>{\"use strict\";var PJt=Dr().isArrayOrTypedArray;EKe.exports=function(e,t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p=PJt(r)?\"a\":\"b\",k=p===\"a\"?e.aaxis:e.baxis,E=k.smoothing,S=p===\"a\"?e.a2i:e.b2j,L=p===\"a\"?r:n,x=p===\"a\"?n:r,C=p===\"a\"?t.a.length:t.b.length,M=p===\"a\"?t.b.length:t.a.length,g=Math.floor(p===\"a\"?e.b2j(x):e.a2i(x)),P=p===\"a\"?function(_e){return e.evalxy([],_e,g)}:function(_e){return e.evalxy([],g,_e)};E&&(o=Math.max(0,Math.min(M-2,g)),s=g-o,a=p===\"a\"?function(_e,Ee){return e.dxydi([],_e,o,Ee,s)}:function(_e,Ee){return e.dxydj([],o,_e,s,Ee)});var T=S(L[0]),z=S(L[1]),O=T0?Math.floor:Math.ceil,Z=O>0?Math.ceil:Math.floor,H=O>0?Math.min:Math.max,N=O>0?Math.max:Math.min,j=G(T+V),re=Z(z-V);c=P(T);var oe=[[c]];for(i=j;i*O{\"use strict\";var Q7=Oa(),e9=A$(),RKe=S$(),sC=So(),m1=Dr(),IJt=gG(),RJt=mG(),dw=E8(),$7=L4(),DJt=bG(),FJt=xG(),zJt=wG(),OJt=J7(),CKe=kKe();DKe.exports=function(t,r,n,i){var a=r.xaxis,o=r.yaxis;m1.makeTraceGroups(i,n,\"contour\").each(function(s){var l=Q7.select(this),u=s[0],c=u.trace,f=c._carpetTrace=OJt(t,c),h=t.calcdata[f.index][0];if(!f.visible||f.visible===\"legendonly\")return;var d=u.a,v=u.b,_=c.contours,b=FJt(_,r,u),p=_.type===\"constraint\",k=_._operation,E=p?k===\"=\"?\"lines\":\"fill\":_.coloring;function S(G){var Z=f.ab2xy(G[0],G[1],!0);return[a.c2p(Z[0]),o.c2p(Z[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]]];IJt(b);var x=(d[d.length-1]-d[0])*1e-8,C=(v[v.length-1]-v[0])*1e-8;RJt(b,x,C);var M=b;_.type===\"constraint\"&&(M=DJt(b,k)),qJt(b,S);var g,P,T,z,O=[];for(z=h.clipsegments.length-1;z>=0;z--)g=h.clipsegments[z],P=e9([],g.x,a.c2p),T=e9([],g.y,o.c2p),P.reverse(),T.reverse(),O.push(RKe(P,T,g.bicubic));var V=\"M\"+O.join(\"L\")+\"Z\";UJt(l,h.clipsegments,a,o,p,E),VJt(c,l,a,o,M,L,S,f,h,E,V),BJt(l,b,t,u,_,r,f),sC.setClipUrl(l,f._clipPathId,t)})};function qJt(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 LKe(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 PKe(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]);return[e[0]/t,e[1]/t]}function IKe(e,t){var r=Math.abs(e[0]*t[0]+e[1]*t[1]),n=Math.sqrt(1-r*r);return n/r}function UJt(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,_=b):Math.abs(h[1]-d[1])=0&&(d=P,_=b):m1.log(\"endpt to newendpt is not vert. or horz.\",h,d,P)}if(_>=0)break;u+=M(h,d),h=d}if(_===t.edgepaths.length){m1.log(\"unclosed perimeter path\");break}l=_,f=c.indexOf(l)===-1,f&&(l=c[0],u+=M(h,d)+\"Z\",h=null)}for(l=0;l{\"use strict\";zKe.exports={attributes:C$(),supplyDefaults:L$(),colorbar:L8(),calc:MKe(),plot:FKe(),style:C8(),moduleType:\"trace\",name:\"contourcarpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"contour\",\"symbols\",\"showLegend\",\"hasLines\",\"carpetDependent\",\"noHover\",\"noSortingByValue\"],meta:{}}});var BKe=ye((vwr,qKe)=>{\"use strict\";qKe.exports=OKe()});var r9=ye((pwr,HKe)=>{\"use strict\";var t9=Dr().extendFlat,lC=pf(),NKe=df().axisHoverFormat,{hovertemplateAttrs:HJt,templatefallbackAttrs:jJt}=Ll(),VKe=Pd().dash,WJt=n3(),GKe=WT(),XJt=GKe.INCREASING.COLOR,ZJt=GKe.DECREASING.COLOR,P$=lC.line;function UKe(e){return{line:{color:t9({},P$.color,{dflt:e}),width:P$.width,dash:VKe,editType:\"style\"},editType:\"style\"}}HKe.exports={xperiod:lC.xperiod,xperiod0:lC.xperiod0,xperiodalignment:lC.xperiodalignment,xhoverformat:NKe(\"x\"),yhoverformat:NKe(\"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:t9({},P$.width,{}),dash:t9({},VKe,{}),editType:\"style\"},increasing:UKe(XJt),decreasing:UKe(ZJt),text:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertext:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertemplate:HJt({},{keys:[\"open\",\"high\",\"low\",\"close\"]}),hovertemplatefallback:jJt(),tickwidth:{valType:\"number\",min:0,max:.5,dflt:.3,editType:\"calc\"},hoverlabel:t9({},WJt.hoverlabel,{split:{valType:\"boolean\",dflt:!1,editType:\"style\"}}),zorder:lC.zorder}});var I$=ye((gwr,jKe)=>{\"use strict\";var YJt=qa(),KJt=Dr();jKe.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=YJt.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,KJt.minRowLength(a))),r._length=f,f}}});var ZKe=ye((mwr,XKe)=>{\"use strict\";var JJt=Dr(),$Jt=I$(),QJt=Pg(),e$t=r9();XKe.exports=function(t,r,n,i){function a(s,l){return JJt.coerce(t,r,e$t,s,l)}var o=$Jt(t,r,a,i);if(!o){r.visible=!1;return}QJt(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),a(\"line.dash\"),WKe(t,r,a,\"increasing\"),WKe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"tickwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function WKe(e,t,r,n){r(n+\".line.color\"),r(n+\".line.width\",t.line.width),r(n+\".line.dash\",t.line.dash)}});var R$=ye((ywr,KKe)=>{\"use strict\";var V5=Dr(),i9=V5._,n9=ho(),t$t=Rg(),uC=fs().BADNUM;function r$t(e,t){var r=n9.getFromId(e,t.xaxis),n=n9.getFromId(e,t.yaxis),i=n$t(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=YKe(e,t,o,s,n,i$t);return t._extremes[r._id]=n9.findExtremes(r,s,{vpad:a/2}),l.length?(V5.extendFlat(l[0].t,{wHover:a/2,tickLen:i}),l):[{t:{empty:!0}}]}function i$t(e,t,r,n){return{o:e,h:t,l:r,c:n}}function YKe(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=V5.isArrayOrTypedArray(t.text),f=V5.isArrayOrTypedArray(t.hovertext),h=!0,d=null,v=!!t.xperiodalignment,_=[],b=0;bd):h=L>k,d=L;var x=a(k,E,S,L);x.pos=p,x.yc=(k+L)/2,x.i=b,x.dir=h?\"increasing\":\"decreasing\",x.x=x.pos,x.y=[S,E],v&&(x.orig_p=r[b]),c&&(x.tx=t.text[b]),f&&(x.htx=t.hovertext[b]),_.push(x)}else _.push({pos:p,empty:!0})}return t._extremes[i._id]=n9.findExtremes(i,V5.concat(l,s),{padded:!0}),_.length&&(_[0].t={labels:{open:i9(e,\"open:\")+\" \",high:i9(e,\"high:\")+\" \",low:i9(e,\"low:\")+\" \",close:i9(e,\"close:\")+\" \"}}),_}function n$t(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 a$t=Oa(),JKe=Dr();$Ke.exports=function(t,r,n,i){var a=r.yaxis,o=r.xaxis,s=!!o.rangebreaks;JKe.makeTraceGroups(i,n,\"trace ohlc\").each(function(l){var u=a$t.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(JKe.identity);v.enter().append(\"path\"),v.exit().remove(),v.attr(\"d\",function(_){if(_.empty)return\"M0,0Z\";var b=o.c2p(_.pos-d,!0),p=o.c2p(_.pos+d,!0),k=s?(b+p)/2:o.c2p(_.pos,!0),E=a.c2p(_.o,!0),S=a.c2p(_.h,!0),L=a.c2p(_.l,!0),x=a.c2p(_.c,!0);return\"M\"+b+\",\"+E+\"H\"+k+\"M\"+k+\",\"+S+\"V\"+L+\"M\"+p+\",\"+x+\"H\"+k})})}});var tJe=ye((xwr,eJe)=>{\"use strict\";var D$=Oa(),o$t=So(),s$t=ka();eJe.exports=function(t,r,n){var i=n||D$.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;D$.select(this).selectAll(\"path\").each(function(s){if(!s.empty){var l=o[s.dir].line;D$.select(this).style(\"fill\",\"none\").call(s$t.stroke,l.color).call(o$t.dashLine,l.dash,l.width).style(\"opacity\",o.selectedpoints&&!s.selected?.3:1)}})})}});var z$=ye((bwr,oJe)=>{\"use strict\";var F$=ho(),l$t=Dr(),a9=vf(),u$t=ka(),c$t=Dr().fillText,rJe=WT(),f$t={increasing:rJe.INCREASING.SYMBOL,decreasing:rJe.DECREASING.SYMBOL};function h$t(e,t,r,n){var i=e.cd,a=i[0].trace;return a.hoverlabel.split?nJe(e,t,r,n):aJe(e,t,r,n)}function iJe(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},_=s.bdPos||s.tickLen,b=s.wHover,p=Math.min(1,_/Math.abs(a.r2c(a.range[1])-a.r2c(a.range[0])));f=e.maxHoverDistance-p,h=e.maxSpikeDistance-p;function k(P){var T=v(P);return a9.inbox(T-b,T+b,f)}function E(P){var T=P[u],z=P[c];return T===z||a9.inbox(T-r,z-r,f)}function S(P){return(k(P)+E(P))/2}var L=a9.getDistanceFunction(n,k,E,S);if(a9.getClosest(i,L,e),e.index===!1)return null;var x=i[e.index];if(x.empty)return null;var C=x.dir,M=o[C],g=M.line.color;return u$t.opacity(g)&&M.line.width?e.color=g:e.color=M.fillcolor,e.x0=a.c2p(x.pos+d-_,!0),e.x1=a.c2p(x.pos+d+_,!0),e.xLabelVal=x.orig_p!==void 0?x.orig_p:x.pos,e.spikeDistance=S(x)*h/f,e.xSpike=a.c2p(x.pos,!0),e}function nJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=[],u=iJe(e,t,r,n);if(!u)return[];var c=i[u.index],f=c.hi||o.hoverinfo||\"\";if(f===\"none\"||f===\"skip\")return[];for(var h=[\"high\",\"open\",\"close\",\"low\"],d={},v=0;v\"+s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat)):(k=l$t.extendFlat({},u),k.y0=k.y1=p,k.yLabelVal=b,k.yLabel=s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat),k.name=\"\",l.push(k),d[b]=k)}return l}function aJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=iJe(e,t,r,n);if(!l)return[];var u=l.index,c=i[u],f=l.index=c.i,h=c.dir;function d(S){return s.labels[S]+F$.hoverLabelText(a,o[S][f],o.yhoverformat)}var v=c.hi||o.hoverinfo||\"\",_=v.split(\"+\"),b=v===\"all\",p=b||_.indexOf(\"y\")!==-1,k=b||_.indexOf(\"text\")!==-1,E=p?[d(\"open\"),d(\"high\"),d(\"low\"),d(\"close\")+\" \"+f$t[h]]:[];return k&&c$t(c,o,E),l.extraText=E.join(\"
\"),l.y0=l.y1=a.c2p(c.yc,!0),[l]}oJe.exports={hoverPoints:h$t,hoverSplit:nJe,hoverOnPoints:aJe}});var O$=ye((wwr,sJe)=>{\"use strict\";sJe.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\";lJe.exports={moduleType:\"trace\",name:\"ohlc\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\"],meta:{},attributes:r9(),supplyDefaults:ZKe(),calc:R$().calc,plot:QKe(),style:tJe(),hoverPoints:z$().hoverPoints,selectPoints:O$()}});var fJe=ye((Awr,cJe)=>{\"use strict\";cJe.exports=uJe()});var B$=ye((Swr,vJe)=>{\"use strict\";var q$=Dr().extendFlat,hJe=df().axisHoverFormat,dp=r9(),G5=_4();function dJe(e){return{line:{color:q$({},G5.line.color,{dflt:e}),width:G5.line.width,editType:\"style\"},fillcolor:G5.fillcolor,editType:\"style\"}}vJe.exports={xperiod:dp.xperiod,xperiod0:dp.xperiod0,xperiodalignment:dp.xperiodalignment,xhoverformat:hJe(\"x\"),yhoverformat:hJe(\"y\"),x:dp.x,open:dp.open,high:dp.high,low:dp.low,close:dp.close,line:{width:q$({},G5.line.width,{}),editType:\"style\"},increasing:dJe(dp.increasing.line.color.dflt),decreasing:dJe(dp.decreasing.line.color.dflt),text:dp.text,hovertext:dp.hovertext,hovertemplate:dp.hovertemplate,hovertemplatefallback:dp.hovertemplatefallback,whiskerwidth:q$({},G5.whiskerwidth,{dflt:0}),hoverlabel:dp.hoverlabel,zorder:G5.zorder}});var mJe=ye((Mwr,gJe)=>{\"use strict\";var d$t=Dr(),v$t=ka(),p$t=I$(),g$t=Pg(),m$t=B$();gJe.exports=function(t,r,n,i){function a(s,l){return d$t.coerce(t,r,m$t,s,l)}var o=p$t(t,r,a,i);if(!o){r.visible=!1;return}g$t(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),pJe(t,r,a,\"increasing\"),pJe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"whiskerwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function pJe(e,t,r,n){var i=r(n+\".line.color\");r(n+\".line.width\",t.line.width),r(n+\".fillcolor\",v$t.addOpacity(i,.5))}});var bJe=ye((Ewr,xJe)=>{\"use strict\";var yJe=Dr(),_Je=ho(),y$t=Rg(),_$t=R$().calcCommon;xJe.exports=function(e,t){var r=e._fullLayout,n=_Je.getFromId(e,t.xaxis),i=_Je.getFromId(e,t.yaxis),a=n.makeCalcdata(t,\"x\"),o=y$t(t,n,\"x\",a).vals,s=_$t(e,t,a,o,i,x$t);return s.length?(yJe.extendFlat(s[0].t,{num:r._numBoxes,dPos:yJe.distinctVals(o).minDiff/2,posLetter:\"x\",valLetter:\"y\"}),r._numBoxes++,s):[{t:{empty:!0}}]};function x$t(e,t,r,n){return{min:r,q1:Math.min(e,n),med:n,q3:Math.max(e,n),max:t}}});var TJe=ye((kwr,wJe)=>{\"use strict\";wJe.exports={moduleType:\"trace\",name:\"candlestick\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\",\"candlestick\",\"boxLayout\"],meta:{},attributes:B$(),layoutAttributes:x4(),supplyLayoutDefaults:XI().supplyLayoutDefaults,crossTraceCalc:YI().crossTraceCalc,supplyDefaults:mJe(),calc:bJe(),plot:KI().plot,layerName:\"boxlayer\",style:JI().style,hoverPoints:z$().hoverPoints,selectPoints:O$()}});var SJe=ye((Cwr,AJe)=>{\"use strict\";AJe.exports=TJe()});var U$=ye((Lwr,MJe)=>{\"use strict\";var s9=Dr(),b$t=ym(),o9=s9.deg2rad,N$=s9.rad2deg;MJe.exports=function(t,r,n){switch(b$t(t,n),t._id){case\"x\":case\"radialaxis\":w$t(t,r);break;case\"angularaxis\":S$t(t,r);break}};function w$t(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 T$t(e,t){return t===\"degrees\"?o9(e):e}function A$t(e,t){return t===\"degrees\"?N$(e):e}function S$t(e,t){var r=e.type;if(r===\"linear\"){var n=e.d2c,i=e.c2d;e.d2c=function(a,o){return T$t(n(a),o)},e.c2d=function(a,o){return i(A$t(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\";EJe.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 c9=ye((Iwr,IJe)=>{\"use strict\";var vw=Dr(),kJe=EM().tester,V$=vw.findIndexOfMin,LJe=vw.isAngleInsideSector,M$t=vw.angleDelta,CJe=vw.angleDist;function E$t(e,t,r,n,i){if(!LJe(t,n))return!1;var a,o;r[0]0?o:1/0},n=V$(t,r),i=vw.mod(n+1,t.length);return[t[n],t[i]]}function u9(e){return Math.abs(e)>1e-10?e:0}function G$(e,t,r){t=t||0,r=r||0;for(var n=e.length,i=new Array(n),a=0;a{\"use strict\";function RJe(e){return e<0?-1:e>0?1:0}function j5(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 W5(e,t){var r=t[0],n=t[1];return[r*e.radius+e.cx,-n*e.radius+e.cy]}function DJe(e,t){return t*e.radius}function F$t(e,t,r,n){var i=W5(e,j5([r,t])),a=i[0],o=i[1],s=W5(e,j5([n,t])),l=s[0],u=s[1];if(t===0)return[\"M\"+a+\",\"+o,\"L\"+l+\",\"+u].join(\" \");var c=DJe(e,1/Math.abs(t));return[\"M\"+a+\",\"+o,\"A\"+c+\",\"+c+\" 0 0,\"+(t<0?1:0)+\" \"+l+\",\"+u].join(\" \")}function z$t(e,t,r,n){var i=DJe(e,1/(t+1)),a=W5(e,j5([t,r])),o=a[0],s=a[1],l=W5(e,j5([t,n])),u=l[0],c=l[1];if(RJe(r)!==RJe(n)){var f=W5(e,j5([t,0])),h=f[0],d=f[1];return[\"M\"+o+\",\"+s,\"A\"+i+\",\"+i+\" 0 0,\"+(0{\"use strict\";var pw=Oa(),O$t=cd(),mw=qa(),Xc=Dr(),iy=Xc.strRotate,xd=Xc.strTranslate,j$=ka(),cC=So(),q$t=Mc(),vp=ho(),B$t=ym(),N$t=U$(),U$t=Tg().doAutoRange,y1=NN(),d9=yv(),zJe=vf(),V$t=Eb(),G$t=Of().prepSelect,H$t=Of().selectOnClick,W$=Of().clearOutline,OJe=Ag(),qJe=dM(),BJe=bM().redrawReglTraces,j$t=$h().MID_SHIFT,Lx=l9(),_1=c9(),v9=H$(),f9=v9.smith,W$t=v9.reactanceArc,X$t=v9.resistanceArc,h9=v9.smithTransform,Z$t=Xc._,NJe=Xc.mod,Px=Xc.deg2rad,gw=Xc.rad2deg;function UJe(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 Nd=UJe.prototype;HJe.exports=function(t,r,n){return new UJe(t,r,n)};Nd.plot=function(e,t){for(var r=this,n=t[r.id],i=!1,a=0;ab?(p=u,k=u*b,L=(c-k)/i.h/2,E=[s[0],s[1]],S=[l[0]+L,l[1]-L]):(p=c/b,k=c,L=(u-p)/i.w/2,E=[s[0]+L,s[1]-L],S=[l[0],l[1]]),r.xLength2=p,r.yLength2=k,r.xDomain2=E,r.yDomain2=S;var x=r.xOffset2=i.l+i.w*E[0],C=r.yOffset2=i.t+i.h*(1-S[1]),M=r.radius=p/d,g=r.innerRadius=r.getHole(t)*M,P=r.cx=x-M*h[0],T=r.cy=C+M*h[3],z=r.cxx=P-x,O=r.cyy=T-C,V=a.side,G;V===\"counterclockwise\"?(G=V,V=\"top\"):V===\"clockwise\"&&(G=V,V=\"bottom\"),r.radialAxis=r.mockAxis(e,t,a,{_id:\"x\",side:V,_trueSide:G,domain:[g/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:E}),r.yaxis=r.mockCartesianAxis(e,t,{_id:\"y\",domain:S});var Z=r.pathSubplot();r.clipPaths.forTraces.select(\"path\").attr(\"d\",Z).attr(\"transform\",xd(z,O)),n.frontplot.attr(\"transform\",xd(x,C)).call(cC.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr(\"d\",Z).attr(\"transform\",xd(P,T)).call(j$.fill,t.bgcolor)};Nd.mockAxis=function(e,t,r,n){var i=Xc.extendFlat({},r,n);return N$t(i,t,e),i};Nd.mockCartesianAxis=function(e,t,r){var n=this,i=n.isSmith,a=r._id,o=Xc.extendFlat({type:\"linear\"},r);B$t(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};Nd.doAutoRange=function(e,t){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(t);U$t(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 g=h9(r,f9([M.x,0]));return xd(g[0]-s,g[1]-l)}:function(M){return xd(f.l2p(M.x)+o,0)},_=d?function(M){return X$t(r,M.x,-1/0,1/0)}:function(M){return r.pathArc(f.r2p(M.x)+o)},b=VJe(u);if(r.radialTickLayout!==b&&(i[\"radial-axis\"].selectAll(\".xtick\").remove(),r.radialTickLayout=b),h){f.setScale();var p=0,k=d?(f.tickvals||[]).filter(function(M){return M>=0}).map(function(M){return vp.tickText(f,M,!0,!1)}):vp.calcTicks(f),E=d?k:vp.clipEnds(f,k),S=vp.getTickSigns(f)[2];d&&((f.ticks===\"top\"&&f.side===\"bottom\"||f.ticks===\"bottom\"&&f.side===\"top\")&&(S=-S),f.ticks===\"top\"&&f.side===\"top\"&&(p=-f.ticklen),f.ticks===\"bottom\"&&f.side===\"bottom\"&&(p=f.ticklen)),vp.drawTicks(n,f,{vals:k,layer:i[\"radial-axis\"],path:vp.makeTickPath(f,0,S),transFn:v,crisp:!1}),vp.drawGrid(n,f,{vals:E,layer:i[\"radial-grid\"],path:_,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,f,{vals:k,layer:i[\"radial-axis\"],transFn:v,labelFns:vp.makeLabelFns(f,p)})}var L=r.radialAxisAngle=r.vangles?gw(GJe(Px(u.angle),r.vangles)):u.angle,x=xd(s,l),C=x+iy(-L);fC(i[\"radial-axis\"],h&&(u.showticklabels||u.ticks),{transform:C}),fC(i[\"radial-grid\"],h&&u.showgrid,{transform:d?\"\":x}),fC(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(j$.stroke,u.linecolor)};Nd.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=cC.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,_=Px(v),b=Math.cos(_),p=Math.sin(_),k=o+a/2*b+c*p,E=s-a/2*p+c*b;n.layers[\"radial-axis-title\"]=V$t.draw(i,u,{propContainer:l,propName:n.id+\".radialaxis.title.text\",placeholder:Z$t(i,\"Click to enter radial axis title\"),attributes:{x:k,y:E,\"text-anchor\":\"middle\"},transform:{rotate:-v}})}};Nd.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(g){var P=h9(r,f9([0,g.x]));return Math.atan2(P[0]-s,P[1]-l)-Math.PI/2}:function(g){return c.t2g(g.x)};c.type===\"linear\"&&c.thetaunit===\"radians\"&&(c.tick0=gw(c.tick0),c.dtick=gw(c.dtick));var d=function(g){return xd(s+a*Math.cos(g),l-a*Math.sin(g))},v=f?function(g){var P=h9(r,f9([0,g.x]));return xd(P[0],P[1])}:function(g){return d(h(g))},_=f?function(g){var P=h9(r,f9([0,g.x])),T=Math.atan2(P[0]-s,P[1]-l)-Math.PI/2;return xd(P[0],P[1])+iy(-gw(T))}:function(g){var P=h(g);return d(P)+iy(-gw(P))},b=f?function(g){return W$t(r,g.x,0,1/0)}:function(g){var P=h(g),T=Math.cos(P),z=Math.sin(P);return\"M\"+[s+o*T,l-o*z]+\"L\"+[s+a*T,l-a*z]},p=vp.makeLabelFns(c,0),k=p.labelStandoff,E={};E.xFn=function(g){var P=h(g);return Math.cos(P)*k},E.yFn=function(g){var P=h(g),T=Math.sin(P)>0?.2:1;return-Math.sin(P)*(k+g.fontSize*T)+Math.abs(Math.cos(P))*(g.fontSize*j$t)},E.anchorFn=function(g){var P=h(g),T=Math.cos(P);return Math.abs(T)<.1?\"middle\":T>0?\"start\":\"end\"},E.heightFn=function(g,P,T){var z=h(g);return-.5*(1+Math.sin(z))*T};var S=VJe(u);r.angularTickLayout!==S&&(i[\"angular-axis\"].selectAll(\".\"+c._id+\"tick\").remove(),r.angularTickLayout=S);var L=f?[1/0].concat(c.tickvals||[]).map(function(g){return vp.tickText(c,g,!0,!1)}):vp.calcTicks(c);f&&(L[0].text=\"\\u221E\",L[0].fontSize*=1.75);var x;if(t.gridshape===\"linear\"?(x=L.map(h),Xc.angleDelta(x[0],x[1])<0&&(x=x.slice().reverse())):x=null,r.vangles=x,c.type===\"category\"&&(L=L.filter(function(g){return Xc.isAngleInsideSector(h(g),r.sectorInRad)})),c.visible){var C=c.ticks===\"inside\"?-1:1,M=(c.linewidth||1)/2;vp.drawTicks(n,c,{vals:L,layer:i[\"angular-axis\"],path:\"M\"+C*M+\",0h\"+C*c.ticklen,transFn:_,crisp:!1}),vp.drawGrid(n,c,{vals:L,layer:i[\"angular-grid\"],path:b,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,c,{vals:L,layer:i[\"angular-axis\"],repositionOnUpdate:!0,transFn:v,labelFns:E})}fC(i[\"angular-line\"].select(\"path\"),u.showline,{d:r.pathSubplot(),transform:xd(s,l)}).attr(\"stroke-width\",u.linewidth).call(j$.stroke,u.linecolor)};Nd.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)}};Nd.updateHoverAndMainDrag=function(e){var t=this,r=t.isSmith,n=t.gd,i=t.layers,a=e._zoomlayer,o=Lx.MINZOOM,s=Lx.OFFEDGE,l=t.radius,u=t.innerRadius,c=t.cx,f=t.cy,h=t.cxx,d=t.cyy,v=t.sectorInRad,_=t.vangles,b=t.radialAxis,p=_1.clampTiny,k=_1.findXYatLength,E=_1.findEnclosingVertexAngles,S=Lx.cornerHalfWidth,L=Lx.cornerLen/2,x,C,M=y1.makeDragger(i,\"path\",\"maindrag\",e.dragmode===!1?\"none\":\"crosshair\");pw.select(M).attr(\"d\",t.pathSubplot()).attr(\"transform\",xd(c,f)),M.onmousemove=function(ce){zJe.hover(n,ce,t.id),n._fullLayout._lasthover=M,n._fullLayout._hoversubplot=t.id},M.onmouseout=function(ce){n._dragging||d9.unhover(n,ce)};var g={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,z,O,V,G,Z,H,N;function j(ce,Ze){return Math.sqrt(ce*ce+Ze*Ze)}function re(ce,Ze){return j(ce-h,Ze-d)}function oe(ce,Ze){return Math.atan2(d-Ze,ce-h)}function _e(ce,Ze){return[ce*Math.cos(Ze),ce*Math.sin(-Ze)]}function Ee(ce,Ze){if(ce===0)return t.pathSector(2*S);var ut=L/ce,pt=Ze-ut,Zt=Ze+ut,st=Math.max(0,Math.min(ce,l)),lt=st-S,Gt=st+S;return\"M\"+_e(lt,pt)+\"A\"+[lt,lt]+\" 0,0,0 \"+_e(lt,Zt)+\"L\"+_e(Gt,Zt)+\"A\"+[Gt,Gt]+\" 0,0,1 \"+_e(Gt,pt)+\"Z\"}function Ce(ce,Ze,ut){if(ce===0)return t.pathSector(2*S);var pt=_e(ce,Ze),Zt=_e(ce,ut),st=p((pt[0]+Zt[0])/2),lt=p((pt[1]+Zt[1])/2),Gt,Nt;if(st&<){var Jt=lt/st,sr=-1/Jt,wr=k(S,Jt,st,lt);Gt=k(L,sr,wr[0][0],wr[0][1]),Nt=k(L,sr,wr[1][0],wr[1][1])}else{var cr,$e;lt?(cr=L,$e=S):(cr=S,$e=L),Gt=[[st-cr,lt-$e],[st+cr,lt-$e]],Nt=[[st-cr,lt+$e],[st+cr,lt+$e]]}return\"M\"+Gt.join(\"L\")+\"L\"+Nt.reverse().join(\"L\")+\"Z\"}function me(){z=null,O=null,V=t.pathSubplot(),G=!1;var ce=n._fullLayout[t.id];Z=O$t(ce.bgcolor).getLuminance(),H=y1.makeZoombox(a,Z,c,f,V),H.attr(\"fill-rule\",\"evenodd\"),N=y1.makeCorners(a,c,f),W$(n)}function ie(ce,Ze){return Ze=Math.max(Math.min(Ze,l),u),ceo?(ce-1&&ce===1&&H$t(Ze,n,[t.xaxis],[t.yaxis],t.id,g),ut.indexOf(\"event\")>-1&&zJe.click(n,Ze,t.id)}g.prepFn=function(ce,Ze,ut){var pt=n._fullLayout.dragmode,Zt=M.getBoundingClientRect();n._fullLayout._calcInverseTransform(n);var st=n._fullLayout._invTransform;x=n._fullLayout._invScaleX,C=n._fullLayout._invScaleY;var lt=Xc.apply3DTransform(st)(Ze-Zt.left,ut-Zt.top);if(P=lt[0],T=lt[1],_){var Gt=_1.findPolygonOffset(l,v[0],v[1],_);P+=h+Gt[0],T+=d+Gt[1]}switch(pt){case\"zoom\":g.clickFn=Re,r||(_?g.moveFn=Fe:g.moveFn=Le,g.doneFn=Pe,me(ce,Ze,ut));break;case\"select\":case\"lasso\":G$t(ce,Ze,ut,g,pt);break}},d9.init(g)};Nd.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=Lx.radialDragBoxSize,h=f/2;if(!c.visible)return;var d=Px(n.radialAxisAngle),v=c._rl,_=v[0],b=v[1],p=v[r],k=.75*(v[1]-v[0])/(1-n.getHole(t))/o,E,S,L;r?(E=l+(o+h)*Math.cos(d),S=u-(o+h)*Math.sin(d),L=\"radialdrag\"):(E=l+(s-h)*Math.cos(d),S=u-(s-h)*Math.sin(d),L=\"radialdrag-inner\");var x=y1.makeRectDragger(a,L,\"crosshair\",-h,-h,f,f),C={element:x,gd:i};e.dragmode===!1&&(C.dragmode=!1),fC(pw.select(x),c.visible&&s0!=(r?P>_: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 GJe(e,t){var r=function(i){return Xc.angleDist(e,i)},n=Xc.findIndexOfMin(t,r);return t[n]}function fC(e,t,r){return t?(e.attr(\"display\",null),e.attr(r)):e&&e.attr(\"display\",\"none\"),e}});var Z$=ye((Fwr,KJe)=>{\"use strict\";var K$t=Lh(),os=Rd(),J$t=Cc().attributes,c0=Dr().extendFlat,jJe=mc().overrideAll,WJe=jJe({color:os.color,showline:c0({},os.showline,{dflt:!0}),linecolor:os.linecolor,linewidth:os.linewidth,showgrid:c0({},os.showgrid,{dflt:!0}),gridcolor:os.gridcolor,gridwidth:os.gridwidth,griddash:os.griddash},\"plot\",\"from-root\"),XJe=jJe({tickmode:os.minor.tickmode,nticks:os.nticks,tick0:os.tick0,dtick:os.dtick,tickvals:os.tickvals,ticktext:os.ticktext,ticks:os.ticks,ticklen:os.ticklen,tickwidth:os.tickwidth,tickcolor:os.tickcolor,ticklabelstep:os.ticklabelstep,showticklabels:os.showticklabels,labelalias:os.labelalias,minorloglabels:os.minorloglabels,showtickprefix:os.showtickprefix,tickprefix:os.tickprefix,showticksuffix:os.showticksuffix,ticksuffix:os.ticksuffix,showexponent:os.showexponent,exponentformat:os.exponentformat,minexponent:os.minexponent,separatethousands:os.separatethousands,tickfont:os.tickfont,tickangle:os.tickangle,tickformat:os.tickformat,tickformatstops:os.tickformatstops,layer:os.layer},\"plot\",\"from-root\"),ZJe={visible:c0({},os.visible,{dflt:!0}),type:c0({},os.type,{values:[\"-\",\"linear\",\"log\",\"date\",\"category\"]}),autotypenumbers:os.autotypenumbers,autorangeoptions:{minallowed:os.autorangeoptions.minallowed,maxallowed:os.autorangeoptions.maxallowed,clipmin:os.autorangeoptions.clipmin,clipmax:os.autorangeoptions.clipmax,include:os.autorangeoptions.include,editType:\"plot\"},autorange:c0({},os.autorange,{editType:\"plot\"}),rangemode:{valType:\"enumerated\",values:[\"tozero\",\"nonnegative\",\"normal\"],dflt:\"tozero\",editType:\"calc\"},minallowed:c0({},os.minallowed,{editType:\"plot\"}),maxallowed:c0({},os.maxallowed,{editType:\"plot\"}),range:c0({},os.range,{items:[{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}},{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}}],editType:\"plot\"}),categoryorder:os.categoryorder,categoryarray:os.categoryarray,angle:{valType:\"angle\",editType:\"plot\"},autotickangles:os.autotickangles,side:{valType:\"enumerated\",values:[\"clockwise\",\"counterclockwise\"],dflt:\"clockwise\",editType:\"plot\"},title:{text:c0({},os.title.text,{editType:\"plot\",dflt:\"\"}),font:c0({},os.title.font,{editType:\"plot\"}),editType:\"plot\"},hoverformat:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(ZJe,WJe,XJe);var YJe={visible:c0({},os.visible,{dflt:!0}),type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"category\"],dflt:\"-\",editType:\"calc\",_noTemplating:!0},autotypenumbers:os.autotypenumbers,categoryorder:os.categoryorder,categoryarray:os.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:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(YJe,WJe,XJe);KJe.exports={domain:J$t({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:K$t.background},radialaxis:ZJe,angularaxis:YJe,gridshape:{valType:\"enumerated\",values:[\"circular\",\"linear\"],dflt:\"circular\",editType:\"plot\"},uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"}});var e$e=ye((zwr,QJe)=>{\"use strict\";var p9=Dr(),$$t=ka(),Q$t=vl(),eQt=k_(),tQt=Id().getSubplotData,rQt=bb(),iQt=S3(),nQt=e_(),aQt=t_(),oQt=aI(),sQt=e4(),lQt=yB(),uQt=I3(),$Je=Z$(),cQt=U$(),g9=l9(),JJe=g9.axisNames;function fQt(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=$$t.combine(i,n.paper_bgcolor);var a=r(\"sector\");r(\"hole\");var o=tQt(n.fullData,g9.name,n.id),s=n.layoutOut,l;function u(H,N){return r(l+\".\"+H,N)}for(var c=0;c{\"use strict\";var dQt=Id().getSubplotCalcData,vQt=Dr().counterRegex,pQt=X$(),r$e=l9(),i$e=r$e.attr,yw=r$e.name,t$e=vQt(yw),n$e={};n$e[i$e]={valType:\"subplotid\",dflt:yw,editType:\"calc\"};function gQt(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[yw],i=0;i{\"use strict\";var{hovertemplateAttrs:yQt,texttemplateAttrs:_Qt,templatefallbackAttrs:o$e}=Ll(),y9=Ao().extendFlat,xQt=kg(),f0=pf(),bQt=Gl(),X5=f0.line;s$e.exports={mode:f0.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:f0.text,texttemplate:_Qt({editType:\"plot\"},{keys:[\"r\",\"theta\",\"text\"]}),texttemplatefallback:o$e({editType:\"plot\"}),hovertext:f0.hovertext,line:{color:X5.color,width:X5.width,dash:X5.dash,backoff:X5.backoff,shape:y9({},X5.shape,{values:[\"linear\",\"spline\"]}),smoothing:X5.smoothing,editType:\"calc\"},connectgaps:f0.connectgaps,marker:f0.marker,cliponaxis:y9({},f0.cliponaxis,{dflt:!1}),textposition:f0.textposition,textfont:f0.textfont,fill:y9({},f0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:xQt(),hoverinfo:y9({},bQt.hoverinfo,{flags:[\"r\",\"theta\",\"text\",\"name\"]}),hoveron:f0.hoveron,hovertemplate:yQt(),hovertemplatefallback:o$e(),selected:f0.selected,unselected:f0.unselected}});var x9=ye((Bwr,c$e)=>{\"use strict\";var _9=Dr(),Z5=Ru(),wQt=$p(),TQt=R0(),l$e=eT(),AQt=D0(),SQt=Ig(),MQt=Sm().PTS_LINESONLY,EQt=hC();function kQt(e,t,r,n){function i(s,l){return _9.coerce(e,t,EQt,s,l)}var a=u$e(e,t,n,i);if(!a){t.visible=!1;return}i(\"thetaunit\"),i(\"mode\",a{\"use strict\";var CQt=Dr(),f$e=ho();h$e.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=f$e.tickText(o,l,!0).text;var u=s.thetaunit===\"degrees\"?CQt.rad2deg(t.theta):t.theta;return i.thetaLabel=f$e.tickText(s,u,!0).text,i}});var p$e=ye((Uwr,v$e)=>{\"use strict\";var d$e=Eo(),LQt=fs().BADNUM,PQt=ho(),IQt=F0(),RQt=km(),DQt=z0(),FQt=O0().calcMarkerSize;v$e.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 zQt=oT(),g$e=fs().BADNUM;m$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=r.radialAxis,u=r.angularAxis,c=0;c{\"use strict\";var OQt=cT();function qQt(e,t,r,n){var i=OQt(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,_$e(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function _$e(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(\"
\")}}x$e.exports={hoverPoints:qQt,makeHoverPointText:_$e}});var w$e=ye((Hwr,b$e)=>{\"use strict\";b$e.exports={moduleType:\"trace\",name:\"scatterpolar\",basePlotModule:m9(),categories:[\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:hC(),supplyDefaults:x9().supplyDefaults,colorbar:$d(),formatLabels:b9(),calc:p$e(),plot:y$e(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:w9().hoverPoints,selectPoints:fT(),meta:{}}});var A$e=ye((jwr,T$e)=>{\"use strict\";T$e.exports=w$e()});var Y$=ye((Zwr,M$e)=>{\"use strict\";var S$e=hC(),{cliponaxis:Wwr,hoveron:Xwr}=S$e,BQt=lee(S$e,[\"cliponaxis\",\"hoveron\"]),{connectgaps:NQt,line:{color:UQt,dash:VQt,width:GQt},fill:HQt,fillcolor:jQt,marker:WQt,textfont:XQt,textposition:ZQt}=lk();M$e.exports=q1(mg({},BQt),{connectgaps:NQt,fill:HQt,fillcolor:jQt,line:{color:UQt,dash:VQt,editType:\"calc\",width:GQt},marker:WQt,textfont:XQt,textposition:ZQt})});var C$e=ye((Kwr,k$e)=>{\"use strict\";var E$e=Dr(),K$=Ru(),YQt=x9().handleRThetaDefaults,KQt=$p(),JQt=R0(),$Qt=D0(),QQt=Ig(),eer=Sm().PTS_LINESONLY,ter=Y$();k$e.exports=function(t,r,n,i){function a(s,l){return E$e.coerce(t,r,ter,s,l)}var o=YQt(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"mode\",o{\"use strict\";var rer=b9();L$e.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]),rer(t,r,n)}});var R$e=ye(($wr,I$e)=>{\"use strict\";var ier=F0(),ner=O0().calcMarkerSize,aer=K2(),oer=ho(),ser=ox().TOO_MANY_POINTS;I$e.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 ler=NF(),uer=w9().makeHoverPointText;function cer(e,t,r,n){var i=e.cd,a=i[0].t,o=a.r,s=a.theta,l=ler.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,uer(f,h,c,u),l}}D$e.exports={hoverPoints:cer}});var O$e=ye((e3r,z$e)=>{\"use strict\";z$e.exports={moduleType:\"trace\",name:\"scatterpolargl\",basePlotModule:m9(),categories:[\"gl\",\"regl\",\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:Y$(),supplyDefaults:C$e(),colorbar:$d(),formatLabels:P$e(),calc:R$e(),hoverPoints:F$e().hoverPoints,selectPoints:lY(),meta:{}}});var q$e=ye((t3r,J$)=>{\"use strict\";var fer=GF(),her=Eo(),der=hK(),ver=aY(),T9=K2(),A9=Dr(),per=ox().TOO_MANY_POINTS,ger={};J$.exports=function(t,r,n){if(n.length){var i=r.radialAxis,a=r.angularAxis,o=ver(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,_,b=h.slice(),p=d.slice();for(_=0;_=per&&(v.marker.cluster=c.tree),v.marker&&(v.markerSel.positions=v.markerUnsel.positions=v.marker.positions=k),v.line&&k.length>1&&A9.extendFlat(v.line,T9.linePositions(t,u,k)),v.text&&(A9.extendFlat(v.text,{positions:k},T9.textPosition(t,u,v.text,v.marker)),A9.extendFlat(v.textSel,{positions:k},T9.textPosition(t,u,v.text,v.markerSel)),A9.extendFlat(v.textUnsel,{positions:k},T9.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=E,c.y=S,c.rawx=E,c.rawy=S,c.r=h,c.theta=d,c.positions=k,c._scene=o,c.index=o.count,o.count++}}),der(t,r,n)}};J$.exports.reglPrecompiled=ger});var U$e=ye((r3r,N$e)=>{\"use strict\";var B$e=O$e();B$e.plot=q$e();N$e.exports=B$e});var G$e=ye((i3r,V$e)=>{\"use strict\";V$e.exports=U$e()});var $$=ye((n3r,H$e)=>{\"use strict\";var{hovertemplateAttrs:mer,templatefallbackAttrs:yer}=Ll(),Y5=Ao().extendFlat,Ix=hC(),Rx=Lm();H$e.exports={r:Ix.r,theta:Ix.theta,r0:Ix.r0,dr:Ix.dr,theta0:Ix.theta0,dtheta:Ix.dtheta,thetaunit:Ix.thetaunit,base:Y5({},Rx.base,{}),offset:Y5({},Rx.offset,{}),width:Y5({},Rx.width,{}),text:Y5({},Rx.text,{}),hovertext:Y5({},Rx.hovertext,{}),marker:_er(),hoverinfo:Ix.hoverinfo,hovertemplate:mer(),hovertemplatefallback:yer(),selected:Rx.selected,unselected:Rx.unselected};function _er(){var e=Y5({},Rx.marker);return delete e.cornerradius,e}});var Q$=ye((a3r,j$e)=>{\"use strict\";j$e.exports={barmode:{valType:\"enumerated\",values:[\"stack\",\"overlay\"],dflt:\"stack\",editType:\"calc\"},bargap:{valType:\"number\",dflt:.1,min:0,max:1,editType:\"calc\"}}});var Z$e=ye((o3r,X$e)=>{\"use strict\";var W$e=Dr(),xer=x9().handleRThetaDefaults,ber=UI(),wer=$$();X$e.exports=function(t,r,n,i){function a(s,l){return W$e.coerce(t,r,wer,s,l)}var o=xer(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"base\"),a(\"offset\"),a(\"width\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),ber(t,r,a,n,i),W$e.coerceSelectionMarkerOpacity(r,a)}});var K$e=ye((s3r,Y$e)=>{\"use strict\";var Ter=Dr(),Aer=Q$();Y$e.exports=function(e,t,r){var n={},i;function a(l,u){return Ter.coerce(e[i]||{},t[i],Aer,l,u)}for(var o=0;o{\"use strict\";var J$e=pv().hasColorscale,$$e=gv(),Ser=Dr().isArrayOrTypedArray,Mer=p4(),Eer=jb().setGroupPositions,ker=z0(),Cer=qa().traceIs,Ler=Dr().extendFlat;function Per(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 eQe=Oa(),S9=Eo(),K5=Dr(),Rer=So(),tQ=c9();tQe.exports=function(t,r,n){var i=t._context.staticPlot,a=r.xaxis,o=r.yaxis,s=r.radialAxis,l=r.angularAxis,u=Der(r),c=r.layers.frontplot.select(\"g.barlayer\");K5.makeTraceGroups(c,n,\"trace bars\").each(function(){var f=eQe.select(this),h=K5.ensureSingle(f,\"g\",\"points\"),d=h.selectAll(\"g.point\").data(K5.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 _=eQe.select(this),b=v.rp0=s.c2p(v.s0),p=v.rp1=s.c2p(v.s1),k=v.thetag0=l.c2g(v.p0),E=v.thetag1=l.c2g(v.p1),S;if(!S9(b)||!S9(p)||!S9(k)||!S9(E)||b===p||k===E)S=\"M0,0Z\";else{var L=s.c2g(v.s1),x=(k+E)/2;v.ct=[a.c2p(L*Math.cos(x)),o.c2p(L*Math.sin(x))],S=u(b,p,k,E)}K5.ensureSingle(_,\"path\").attr(\"d\",S)}),Rer.setClipUrl(f,r._hasClipOnAxisFalse?r.clipIds.forTraces:null,t)})};function Der(e){var t=e.cxx,r=e.cyy;return e.vangles?function(n,i,a,o){var s,l;K5.angleDelta(a,o)>0?(s=a,l=o):(s=o,l=a);var u=tQ.findEnclosingVertexAngles(s,e.vangles)[0],c=tQ.findEnclosingVertexAngles(l,e.vangles)[1],f=[u,(s+l)/2,c];return tQ.pathPolygonAnnulus(n,i,s,l,f,t,r)}:function(n,i,a,o){return K5.pathAnnulus(n,i,a,o,t,r)}}});var nQe=ye((c3r,iQe)=>{\"use strict\";var Fer=vf(),rQ=Dr(),zer=MT().getTraceColor,Oer=rQ.fillText,qer=w9().makeHoverPointText,Ber=c9().isPtInsidePolygon;iQe.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?Ber:rQ.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 _=function(E){return c(d,v,[E.rp0,E.rp1],[E.thetag0,E.thetag1],u)?f+Math.min(1,Math.abs(E.thetag1-E.thetag0)/h)-1+(E.rp1-d)/(E.rp1-E.rp0)-1:1/0};if(Fer.getClosest(i,_,t),t.index!==!1){var b=t.index,p=i[b];t.x0=t.x1=p.ct[0],t.y0=t.y1=p.ct[1];var k=rQ.extendFlat({},p,{r:p.s,theta:p.p});return Oer(p,a,t),qer(k,a,o,t),t.hovertemplate=a.hovertemplate,t.color=zer(a,p),t.xLabelVal=t.yLabelVal=void 0,p.s<0&&(t.idealAlign=\"left\"),[t]}}});var oQe=ye((f3r,aQe)=>{\"use strict\";aQe.exports={moduleType:\"trace\",name:\"barpolar\",basePlotModule:m9(),categories:[\"polar\",\"bar\",\"showLegend\"],attributes:$$(),layoutAttributes:Q$(),supplyDefaults:Z$e(),supplyLayoutDefaults:K$e(),calc:eQ().calc,crossTraceCalc:eQ().crossTraceCalc,plot:rQe(),colorbar:$d(),formatLabels:b9(),style:N0().style,styleOnSelect:N0().styleOnSelect,hoverPoints:nQe(),selectPoints:ET(),meta:{}}});var lQe=ye((h3r,sQe)=>{\"use strict\";sQe.exports=oQe()});var iQ=ye((d3r,uQe)=>{\"use strict\";uQe.exports={attr:\"subplot\",name:\"smith\",axisNames:[\"realaxis\",\"imaginaryaxis\"],axisName2dataArray:{imaginaryaxis:\"imag\",realaxis:\"real\"}}});var nQ=ye((v3r,dQe)=>{\"use strict\";var Ner=Lh(),Nf=Rd(),Uer=Cc().attributes,Dx=Dr().extendFlat,cQe=mc().overrideAll,fQe=cQe({color:Nf.color,showline:Dx({},Nf.showline,{dflt:!0}),linecolor:Nf.linecolor,linewidth:Nf.linewidth,showgrid:Dx({},Nf.showgrid,{dflt:!0}),gridcolor:Nf.gridcolor,gridwidth:Nf.gridwidth,griddash:Nf.griddash},\"plot\",\"from-root\"),hQe=cQe({ticklen:Nf.ticklen,tickwidth:Dx({},Nf.tickwidth,{dflt:2}),tickcolor:Nf.tickcolor,showticklabels:Nf.showticklabels,labelalias:Nf.labelalias,showtickprefix:Nf.showtickprefix,tickprefix:Nf.tickprefix,showticksuffix:Nf.showticksuffix,ticksuffix:Nf.ticksuffix,tickfont:Nf.tickfont,tickformat:Nf.tickformat,hoverformat:Nf.hoverformat,layer:Nf.layer},\"plot\",\"from-root\"),Ver=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{dflt:[.2,.5,1,2,5],valType:\"data_array\",editType:\"plot\"},tickangle:Dx({},Nf.tickangle,{dflt:90}),ticks:{valType:\"enumerated\",values:[\"top\",\"bottom\",\"\"],editType:\"ticks\"},side:{valType:\"enumerated\",values:[\"top\",\"bottom\"],dflt:\"top\",editType:\"plot\"},editType:\"calc\"},fQe,hQe),Ger=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{valType:\"data_array\",editType:\"plot\"},ticks:Nf.ticks,editType:\"calc\"},fQe,hQe);dQe.exports={domain:Uer({name:\"smith\",editType:\"plot\"}),bgcolor:{valType:\"color\",editType:\"plot\",dflt:Ner.background},realaxis:Ver,imaginaryaxis:Ger,editType:\"calc\"}});var gQe=ye((p3r,pQe)=>{\"use strict\";var J5=Dr(),Her=ka(),jer=vl(),Wer=k_(),Xer=Id().getSubplotData,Zer=t_(),Yer=e_(),Ker=e4(),Jer=ym(),$5=nQ(),aQ=iQ(),vQe=aQ.axisNames,$er=etr(function(e){return J5.isTypedArray(e)&&(e=Array.from(e)),e.slice().reverse().map(function(t){return-t}).concat([0]).concat(e)},String);function Qer(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=Her.combine(i,n.paper_bgcolor);var a=Xer(n.fullData,aQ.name,n.id),o=n.layoutOut,s;function l(L,x){return r(s+\".\"+L,x)}for(var u=0;u{\"use strict\";var ttr=Id().getSubplotCalcData,rtr=Dr().counterRegex,itr=X$(),yQe=iQ(),_Qe=yQe.attr,_w=yQe.name,mQe=rtr(_w),xQe={};xQe[_Qe]={valType:\"subplotid\",dflt:_w,editType:\"calc\"};function ntr(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[_w],i=0;i{\"use strict\";var{hovertemplateAttrs:otr,texttemplateAttrs:str,templatefallbackAttrs:TQe}=Ll(),M9=Ao().extendFlat,ltr=kg(),h0=pf(),utr=Gl(),Q5=h0.line;AQe.exports={mode:h0.mode,real:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},imag:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},text:h0.text,texttemplate:str({editType:\"plot\"},{keys:[\"real\",\"imag\",\"text\"]}),texttemplatefallback:TQe({editType:\"plot\"}),hovertext:h0.hovertext,line:{color:Q5.color,width:Q5.width,dash:Q5.dash,backoff:Q5.backoff,shape:M9({},Q5.shape,{values:[\"linear\",\"spline\"]}),smoothing:Q5.smoothing,editType:\"calc\"},connectgaps:h0.connectgaps,marker:h0.marker,cliponaxis:M9({},h0.cliponaxis,{dflt:!1}),textposition:h0.textposition,textfont:h0.textfont,fill:M9({},h0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:ltr(),hoverinfo:M9({},utr.hoverinfo,{flags:[\"real\",\"imag\",\"text\",\"name\"]}),hoveron:h0.hoveron,hovertemplate:otr(),hovertemplatefallback:TQe(),selected:h0.selected,unselected:h0.unselected}});var EQe=ye((y3r,MQe)=>{\"use strict\";var E9=Dr(),eS=Ru(),ctr=$p(),ftr=R0(),SQe=eT(),htr=D0(),dtr=Ig(),vtr=Sm().PTS_LINESONLY,ptr=oQ();MQe.exports=function(t,r,n,i){function a(l,u){return E9.coerce(t,r,ptr,l,u)}var o=gtr(t,r,i,a);if(!o){r.visible=!1;return}a(\"mode\",o{\"use strict\";var kQe=ho();CQe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot;return i.realLabel=kQe.tickText(a.radialAxis,t.real,!0).text,i.imagLabel=kQe.tickText(a.angularAxis,t.imag,!0).text,i}});var RQe=ye((x3r,IQe)=>{\"use strict\";var PQe=Eo(),mtr=fs().BADNUM,ytr=F0(),_tr=km(),xtr=z0(),btr=O0().calcMarkerSize;IQe.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 wtr=oT(),DQe=fs().BADNUM,Ttr=H$(),Atr=Ttr.smith;FQe.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 Str=cT();function Mtr(e,t,r,n){var i=Str(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,OQe(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function OQe(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(\"
\")}}qQe.exports={hoverPoints:Mtr,makeHoverPointText:OQe}});var UQe=ye((T3r,NQe)=>{\"use strict\";NQe.exports={moduleType:\"trace\",name:\"scattersmith\",basePlotModule:wQe(),categories:[\"smith\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:oQ(),supplyDefaults:EQe(),colorbar:$d(),formatLabels:LQe(),calc:RQe(),plot:zQe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:BQe().hoverPoints,selectPoints:fT(),meta:{}}});var GQe=ye((A3r,VQe)=>{\"use strict\";VQe.exports=UQe()});var kv=ye((S3r,jQe)=>{var C9=Oh();function HQe(){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={}}C9(HQe.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 sQ(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(Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/,this._calendar.local.name)}function k9(e,t){return e=\"\"+e,\"000000\".substring(0,t-e.length)+e}C9(sQ.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(Gs.local.invalidDate||Gs.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(Gs.local.differentCalendars||Gs.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?\"-\":\"\")+k9(Math.abs(this.year()),4)+\"-\"+k9(this.month(),2)+\"-\"+k9(this.day(),2)}});function lQ(){this.shortYearCutoff=\"+10\"}C9(lQ.prototype,{_validateLevel:0,newDate:function(e,t,r){return e==null?this.today():(e.year&&(this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),r=e.day(),t=e.month(),e=e.year()),new sQ(this,e,t,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.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,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return(t.year()<0?\"-\":\"\")+k9(Math.abs(t.year()),4)},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear),12},monthOfYear:function(e,t){var r=this._validate(e,t,this.minDay,Gs.local.invalidMonth||Gs.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,Gs.local.invalidMonth||Gs.regionalOptions[\"\"].invalidMonth),r},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return this.leapYear(t)?366:365},dayOfYear:function(e,t,r){var n=this._validate(e,t,r,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(e,t,r){return this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),{}},add:function(e,t,r){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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 Gs=jQe.exports=new HQe;Gs.cdate=sQ;Gs.baseCalendar=lQ;Gs.calendars.gregorian=uQ});var WQe=ye(()=>{var cQ=Oh(),Ud=kv();cQ(Ud.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\"});Ud.local=Ud.regionalOptions[\"\"];cQ(Ud.cdate.prototype,{formatDate:function(e,t){return typeof e!=\"string\"&&(t=e,e=\"\"),this._calendar.formatDate(e||\"\",this,t)}});cQ(Ud.baseCalendar.prototype,{UNIX_EPOCH:Ud.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:24*60*60,TICKS_EPOCH:Ud.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 Ud.local.invalidFormat||Ud.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(S,L){for(var x=1;E+x1},c=function(S,L,x,C){var M=\"\"+L;if(u(S,C))for(;M.length1},k=function(z,O){var V=p(z,O),G=[2,3,V?4:2,V?4:2,10,11,20][\"oyYJ@!\".indexOf(z)+1],Z=new RegExp(\"^-?\\\\d{1,\"+G+\"}\"),H=t.substring(M).match(Z);if(!H)throw(Ud.local.missingNumberAt||Ud.regionalOptions[\"\"].missingNumberAt).replace(/\\{0\\}/,M);return M+=H[0].length,parseInt(H[0],10)},E=this,S=function(){if(typeof s==\"function\"){p(\"m\");var z=s.call(E,t.substring(M));return M+=z.length,z}return k(\"m\")},L=function(z,O,V,G){for(var Z=p(z,G)?V:O,H=0;H-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 XQe=ye(()=>{var Fx=kv(),Etr=Oh(),fQ=Fx.instance();function L9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}L9.prototype=new Fx.baseCalendar;Etr(L9.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(Ctr);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(Ltr);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(Ptr);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 Fx.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 Fx.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,Fx.local.invalidyear),i=Ox[n-Ox[0]],a=i>>9&4095,o=i>>5&15,s=i&31,l;l=fQ.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 Fx.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,Fx.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=Rtr(e,a,r,i);return fQ.toJD(o.year,o.month,o.day)},fromJD:function(e){var t=fQ.fromJD(e),r=Itr(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(ktr),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(L9.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 ktr=/^\\s*(-?\\d\\d\\d\\d|\\d\\d)[-/](\\d?\\d)([iI]?)[-/](\\d?\\d)/m,Ctr=/^\\d?\\d[iI]?/m,Ltr=/^闰?十?[一二三四五六七八九]?月/m,Ptr=/^闰?十?[一二三四五六七八九]?/m;Fx.calendars.chinese=L9;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],Ox=[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 Itr(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=Ox[i.year-Ox[0]],c=i.year<<9|i.month<<5|i.day;a.year=c>=u?i.year:i.year-1,u=Ox[a.year-Ox[0]];var f=u>>9&4095,h=u>>5&15,d=u&31,v,_=new Date(f,h-1,d),b=new Date(i.year,i.month-1,i.day);v=Math.round((b-_)/(24*3600*1e3));var p=zx[a.year-zx[0]],k;for(k=0;k<13;k++){var E=p&1<<12-k?30:29;if(v>13;return!S||k=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 _=0;_>9&4095,E=p>>5&15,S=p&31,L=new Date(k,E-1,S+f);return a.year=L.getFullYear(),a.month=1+L.getMonth(),a.day=L.getDate(),a}});var ZQe=ye(()=>{var xw=kv(),Dtr=Oh();function hQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}hQ.prototype=new xw.baseCalendar;Dtr(hQ.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,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.coptic=hQ});var YQe=ye(()=>{var x1=kv(),Ftr=Oh();function dQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}dQ.prototype=new x1.baseCalendar;Ftr(dQ.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,x1.local.invalidYear),!1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.local.invalidYear),13},daysInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.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,x1.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,x1.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,x1.local.invalidDate);return{century:ztr[Math.floor((n.year()-1)/100)+1]||\"\"}},toJD:function(e,t,r){var n=this._validate(e,t,r,x1.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 ztr={20:\"Fruitbat\",21:\"Anchovy\"};x1.calendars.discworld=dQ});var KQe=ye(()=>{var bw=kv(),Otr=Oh();function vQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}vQ.prototype=new bw.baseCalendar;Otr(vQ.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,bw.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,bw.local.invalidYear||bw.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,bw.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,bw.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)}});bw.calendars.ethiopian=vQ});var JQe=ye(()=>{var qx=kv(),qtr=Oh();function pQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}pQ.prototype=new qx.baseCalendar;qtr(pQ.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,P9(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&&P9(this.daysInYear(e),10)===5?30:t===9&&P9(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 P9(e,t){return e-t*Math.floor(e/t)}qx.calendars.hebrew=pQ});var $Qe=ye(()=>{var dC=kv(),Btr=Oh();function gQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}gQ.prototype=new dC.baseCalendar;Btr(gQ.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,dC.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,dC.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,dC.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)}});dC.calendars.islamic=gQ});var QQe=ye(()=>{var vC=kv(),Ntr=Oh();function mQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}mQ.prototype=new vC.baseCalendar;Ntr(mQ.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,vC.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,vC.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,vC.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)}});vC.calendars.julian=mQ});var tet=ye(()=>{var ug=kv(),Utr=Oh();function _Q(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}_Q.prototype=new ug.baseCalendar;Utr(_Q.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=yQ(e+8+17*20,365);return[Math.floor(t/20)+1,yQ(t,20)]},_toTzolkin:function(e){return e-=this.jdEpoch,[eet(e+20,20),eet(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 yQ(e,t){return e-t*Math.floor(e/t)}function eet(e,t){return yQ(e-1,t)+1}ug.calendars.mayan=_Q});var iet=ye(()=>{var ww=kv(),Vtr=Oh();function xQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}xQ.prototype=new ww.baseCalendar;var ret=ww.instance(\"gregorian\");Vtr(xQ.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,ww.local.invalidYear||ww.regionalOptions[\"\"].invalidYear);return ret.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,ww.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,ww.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)}});ww.calendars.nanakshahi=xQ});var net=ye(()=>{var Tw=kv(),Gtr=Oh();function bQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}bQ.prototype=new Tw.baseCalendar;Gtr(bQ.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,Tw.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,Tw.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,Tw.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=Tw.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=Tw.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 tS=kv(),Htr=Oh();function R9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}function I9(e){var t=e-475;e<0&&t++;var r=.242197,n=r*t,i=r*(t+1),a=n-Math.floor(n),o=i-Math.floor(i);return a>o}R9.prototype=new tS.baseCalendar;Htr(R9.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\",\"Dey\",\"Bahman\",\"Esfand\"],monthNamesShort:[\"Far\",\"Ord\",\"Kho\",\"Tir\",\"Mor\",\"Sha\",\"Meh\",\"Aba\",\"Aza\",\"Dey\",\"Bah\",\"Esf\"],dayNames:[\"Yekshanbeh\",\"Doshanbeh\",\"Seshanbeh\",\"Chah\\u0101rshanbeh\",\"Panjshanbeh\",\"Jom'eh\",\"Shanbeh\"],dayNamesShort:[\"Yek\",\"Do\",\"Se\",\"Cha\",\"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,tS.local.invalidYear);return I9(t.year())},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,tS.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,tS.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=0;if(e>0)for(var a=1;a0?e-1:e)*365+i+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e)+.5;var t=475+(e-this.toJD(475,1,1))/365.242197,r=Math.floor(t);r<=0&&r--,e>this.toJD(r,12,I9(r)?30:29)&&(r++,r===0&&r++);var n=e-this.toJD(r,1,1)+1,i=n<=186?Math.ceil(n/31):Math.ceil((n-6)/30),a=e-this.toJD(r,i,1)+1;return this.newDate(r,i,a)}});tS.calendars.persian=R9;tS.calendars.jalali=R9});var oet=ye(()=>{var Aw=kv(),jtr=Oh(),D9=Aw.instance();function wQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}wQ.prototype=new Aw.baseCalendar;jtr(wQ.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,Aw.local.invalidYear),r=this._t2gYear(t.year());return D9.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 D9.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 D9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=D9.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)}});Aw.calendars.taiwan=wQ});var set=ye(()=>{var Sw=kv(),Wtr=Oh(),F9=Sw.instance();function TQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}TQ.prototype=new Sw.baseCalendar;Wtr(TQ.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,Sw.local.invalidYear),r=this._t2gYear(t.year());return F9.leapYear(r)},weekOfYear:function(i,t,r){var n=this._validate(i,this.minMonth,this.minDay,Sw.local.invalidYear),i=this._t2gYear(n.year());return F9.weekOfYear(i,n.month(),n.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,Sw.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,Sw.local.invalidDate),i=this._t2gYear(n.year());return F9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=F9.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)}});Sw.calendars.thai=TQ});var uet=ye(()=>{var Mw=kv(),Xtr=Oh();function AQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}AQ.prototype=new Mw.baseCalendar;Xtr(AQ.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,Mw.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,Mw.local.invalidMonth),n=r.toJD()-24e5+.5,i=0,a=0;an)return Bx[i]-Bx[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,Mw.local.invalidDate),i=12*(n.year()-1)+n.month()-15292,a=n.day()+Bx[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-Bx[r-1]+1;return this.newDate(o,s,l)},isValid:function(e,t,r){var n=Mw.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=Mw.baseCalendar.prototype._validate.apply(this,arguments);if(i.year<1276||i.year>1500)throw n.replace(/\\{0\\}/,this.local.name);return i}});Mw.calendars.ummalqura=AQ;var Bx=[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 fet=ye((rTr,cet)=>{\"use strict\";cet.exports=kv();WQe();XQe();ZQe();YQe();KQe();JQe();$Qe();QQe();tet();iet();net();aet();oet();set();uet()});var yet=ye((iTr,met)=>{\"use strict\";var det=fet(),pC=Dr(),vet=fs(),Ztr=vet.EPOCHJD,Ytr=vet.ONEDAY,EQ={valType:\"enumerated\",values:pC.sortObjectKeys(det.calendars),editType:\"calc\",dflt:\"gregorian\"},pet=function(e,t,r,n){var i={};return i[r]=EQ,pC.coerce(e,t,i,r,n)},Ktr=function(e,t,r,n){for(var i=0;i{\"use strict\";_et.exports=yet()});var rrr=ye((aTr,wet)=>{var bet=rye();bet.register([a1e(),W1e(),oxe(),Exe(),Uxe(),Obe(),Kbe(),O2e(),hwe(),Zwe(),F3e(),XEe(),zke(),E6e(),pLe(),WLe(),gPe(),UIe(),o8e(),A8e(),z8e(),K8e(),fRe(),ERe(),tFe(),bFe(),qBe(),qNe(),ZUe(),xVe(),LGe(),jGe(),pHe(),Eje(),Vje(),hWe(),bXe(),jXe(),MZe(),ZYe(),yKe(),BKe(),fJe(),SJe(),A$e(),G$e(),lQe(),GQe(),xet()]);wet.exports=bet});return rrr();})();\n", + "`),We=Xe.createShader(Xe.FRAGMENT_SHADER);if(Xe.isContextLost())return void(this.failedToCreate=!0);if(Xe.shaderSource(We,Be),Xe.compileShader(We),!Xe.getShaderParameter(We,Xe.COMPILE_STATUS))throw new Error(`Could not compile fragment shader: ${Xe.getShaderInfoLog(We)}`);Xe.attachShader(this.program,We);let it=Xe.createShader(Xe.VERTEX_SHADER);if(Xe.isContextLost())return void(this.failedToCreate=!0);if(Xe.shaderSource(it,et),Xe.compileShader(it),!Xe.getShaderParameter(it,Xe.COMPILE_STATUS))throw new Error(`Could not compile vertex shader: ${Xe.getShaderInfoLog(it)}`);Xe.attachShader(this.program,it),this.attributes={};let Ft={};this.numAttributes=Yt.length;for(let Ht=0;Ht({u_depth:new a.aH(Ht,tr.u_depth),u_terrain:new a.aH(Ht,tr.u_terrain),u_terrain_dim:new a.aI(Ht,tr.u_terrain_dim),u_terrain_matrix:new a.aJ(Ht,tr.u_terrain_matrix),u_terrain_unpack:new a.aK(Ht,tr.u_terrain_unpack),u_terrain_exaggeration:new a.aI(Ht,tr.u_terrain_exaggeration)}))(w,Ft),this.binderUniforms=Q?Q.getUniforms(w,Ft):[]}draw(w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve,be,De,Be,et){let We=w.gl;if(this.failedToCreate)return;if(w.program.set(this.program),w.setDepthMode(Q),w.setStencilMode(ee),w.setColorMode(le),w.setCullFace(qe),ot){w.activeTexture.set(We.TEXTURE2),We.bindTexture(We.TEXTURE_2D,ot.depthTexture),w.activeTexture.set(We.TEXTURE3),We.bindTexture(We.TEXTURE_2D,ot.texture);for(let Ft in this.terrainUniforms)this.terrainUniforms[Ft].set(ot[Ft])}for(let Ft in this.fixedUniforms)this.fixedUniforms[Ft].set(Xe[Ft]);be&&be.setUniforms(w,this.binderUniforms,Ir,{zoom:ve});let it=0;switch(B){case We.LINES:it=2;break;case We.TRIANGLES:it=3;break;case We.LINE_STRIP:it=1}for(let Ft of xr.get()){let Ht=Ft.vaos||(Ft.vaos={});(Ht[Tt]||(Ht[Tt]=new kr)).bind(w,this,Yt,be?be.getPaintVertexBuffers():[],Kt,Ft.vertexOffset,De,Be,et),We.drawElements(B,Ft.primitiveLength*it,We.UNSIGNED_SHORT,Ft.primitiveOffset*it*2)}}}function An(ue,w,B){let Q=1/In(B,1,w.transform.tileZoom),ee=Math.pow(2,B.tileID.overscaledZ),le=B.tileSize*Math.pow(2,w.transform.tileZoom)/ee,qe=le*(B.tileID.canonical.x+B.tileID.wrap*ee),Xe=le*B.tileID.canonical.y;return{u_image:0,u_texsize:B.imageAtlasTexture.size,u_scale:[Q,ue.fromScale,ue.toScale],u_fade:ue.t,u_pixel_coord_upper:[qe>>16,Xe>>16],u_pixel_coord_lower:[65535&qe,65535&Xe]}}let Mn=(ue,w,B,Q)=>{let ee=w.style.light,le=ee.properties.get(\"position\"),qe=[le.x,le.y,le.z],Xe=function(){var Tt=new a.A(9);return a.A!=Float32Array&&(Tt[1]=0,Tt[2]=0,Tt[3]=0,Tt[5]=0,Tt[6]=0,Tt[7]=0),Tt[0]=1,Tt[4]=1,Tt[8]=1,Tt}();ee.properties.get(\"anchor\")===\"viewport\"&&function(Tt,Yt){var Kt=Math.sin(Yt),xr=Math.cos(Yt);Tt[0]=xr,Tt[1]=Kt,Tt[2]=0,Tt[3]=-Kt,Tt[4]=xr,Tt[5]=0,Tt[6]=0,Tt[7]=0,Tt[8]=1}(Xe,-w.transform.angle),function(Tt,Yt,Kt){var xr=Yt[0],Ir=Yt[1],ve=Yt[2];Tt[0]=xr*Kt[0]+Ir*Kt[3]+ve*Kt[6],Tt[1]=xr*Kt[1]+Ir*Kt[4]+ve*Kt[7],Tt[2]=xr*Kt[2]+Ir*Kt[5]+ve*Kt[8]}(qe,qe,Xe);let ot=ee.properties.get(\"color\");return{u_matrix:ue,u_lightpos:qe,u_lightintensity:ee.properties.get(\"intensity\"),u_lightcolor:[ot.r,ot.g,ot.b],u_vertical_gradient:+B,u_opacity:Q}},Li=(ue,w,B,Q,ee,le,qe)=>a.e(Mn(ue,w,B,Q),An(le,w,qe),{u_height_factor:-Math.pow(2,ee.overscaledZ)/qe.tileSize/8}),_n=ue=>({u_matrix:ue}),ya=(ue,w,B,Q)=>a.e(_n(ue),An(B,w,Q)),Jn=(ue,w)=>({u_matrix:ue,u_world:w}),Ma=(ue,w,B,Q,ee)=>a.e(ya(ue,w,B,Q),{u_world:ee}),_o=(ue,w,B,Q)=>{let ee=ue.transform,le,qe;if(Q.paint.get(\"circle-pitch-alignment\")===\"map\"){let Xe=In(B,1,ee.zoom);le=!0,qe=[Xe,Xe]}else le=!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:ue.translatePosMatrix(w.posMatrix,B,Q.paint.get(\"circle-translate\"),Q.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+le,u_device_pixel_ratio:ue.pixelRatio,u_extrude_scale:qe}},No=(ue,w,B)=>({u_matrix:ue,u_inv_matrix:w,u_camera_to_center_distance:B.cameraToCenterDistance,u_viewport_size:[B.width,B.height]}),po=(ue,w,B=1)=>({u_matrix:ue,u_color:w,u_overlay:0,u_overlay_scale:B}),Lo=ue=>({u_matrix:ue}),ko=(ue,w,B,Q)=>({u_matrix:ue,u_extrude_scale:In(w,1,B),u_intensity:Q}),Ds=(ue,w,B,Q)=>{let ee=a.H();a.aP(ee,0,ue.width,ue.height,0,0,1);let le=ue.context.gl;return{u_matrix:ee,u_world:[le.drawingBufferWidth,le.drawingBufferHeight],u_image:B,u_color_ramp:Q,u_opacity:w.paint.get(\"heatmap-opacity\")}};function Fs(ue,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 ll=(ue,w,B,Q)=>{let ee=ue.transform;return{u_matrix:As(ue,w,B,Q),u_ratio:1/In(w,1,ee.zoom),u_device_pixel_ratio:ue.pixelRatio,u_units_to_pixels:[1/ee.pixelsToGLUnits[0],1/ee.pixelsToGLUnits[1]]}},ul=(ue,w,B,Q,ee)=>a.e(ll(ue,w,B,ee),{u_image:0,u_image_height:Q}),zl=(ue,w,B,Q,ee)=>{let le=ue.transform,qe=il(w,le);return{u_matrix:As(ue,w,B,ee),u_texsize:w.imageAtlasTexture.size,u_ratio:1/In(w,1,le.zoom),u_device_pixel_ratio:ue.pixelRatio,u_image:0,u_scale:[qe,Q.fromScale,Q.toScale],u_fade:Q.t,u_units_to_pixels:[1/le.pixelsToGLUnits[0],1/le.pixelsToGLUnits[1]]}},us=(ue,w,B,Q,ee,le)=>{let qe=ue.lineAtlas,Xe=il(w,ue.transform),ot=B.layout.get(\"line-cap\")===\"round\",Tt=qe.getDash(Q.from,ot),Yt=qe.getDash(Q.to,ot),Kt=Tt.width*ee.fromScale,xr=Yt.width*ee.toScale;return a.e(ll(ue,w,B,le),{u_patternscale_a:[Xe/Kt,-Tt.height/2],u_patternscale_b:[Xe/xr,-Yt.height/2],u_sdfgamma:qe.width/(256*Math.min(Kt,xr)*ue.pixelRatio)/2,u_image:0,u_tex_y_a:Tt.y,u_tex_y_b:Yt.y,u_mix:ee.t})};function il(ue,w){return 1/In(ue,1,w.tileZoom)}function As(ue,w,B,Q){return ue.translatePosMatrix(Q?Q.posMatrix:w.tileID.posMatrix,w,B.paint.get(\"line-translate\"),B.paint.get(\"line-translate-anchor\"))}let cl=(ue,w,B,Q,ee)=>{return{u_matrix:ue,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:(le=ee.paint.get(\"raster-contrast\"),le>0?1/(1-le):1+le),u_spin_weights:Ks(ee.paint.get(\"raster-hue-rotate\"))};var le,qe};function Ks(ue){ue*=Math.PI/180;let w=Math.sin(ue),B=Math.cos(ue);return[(2*B+1)/3,(-Math.sqrt(3)*w-B+1)/3,(Math.sqrt(3)*w-B+1)/3]}let zs=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>{let ve=qe.transform;return{u_is_size_zoom_constant:+(ue===\"constant\"||ue===\"source\"),u_is_size_feature_constant:+(ue===\"constant\"||ue===\"camera\"),u_size_t:w?w.uSizeT:0,u_size:w?w.uSize:0,u_camera_to_center_distance:ve.cameraToCenterDistance,u_pitch:ve.pitch/360*2*Math.PI,u_rotate_symbol:+B,u_aspect_ratio:ve.width/ve.height,u_fade_change:qe.options.fadeDuration?qe.symbolFadeChange:1,u_matrix:Xe,u_label_plane_matrix:ot,u_coord_matrix:Tt,u_is_text:+Kt,u_pitch_with_map:+Q,u_is_along_line:ee,u_is_variable_anchor:le,u_texsize:xr,u_texture:0,u_translation:Yt,u_pitched_scale:Ir}},Io=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir,ve)=>{let be=qe.transform;return a.e(zs(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,ve),{u_gamma_scale:Q?Math.cos(be._pitch)*be.cameraToCenterDistance:1,u_device_pixel_ratio:qe.pixelRatio,u_is_halo:+Ir})},ls=(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,Kt,xr,Ir)=>a.e(Io(ue,w,B,Q,ee,le,qe,Xe,ot,Tt,Yt,!0,Kt,!0,Ir),{u_texsize_icon:xr,u_texture_icon:1}),Zl=(ue,w,B)=>({u_matrix:ue,u_opacity:w,u_color:B}),Su=(ue,w,B,Q,ee,le)=>a.e(function(qe,Xe,ot,Tt){let Yt=ot.imageManager.getPattern(qe.from.toString()),Kt=ot.imageManager.getPattern(qe.to.toString()),{width:xr,height:Ir}=ot.imageManager.getPixelSize(),ve=Math.pow(2,Tt.tileID.overscaledZ),be=Tt.tileSize*Math.pow(2,ot.transform.tileZoom)/ve,De=be*(Tt.tileID.canonical.x+Tt.tileID.wrap*ve),Be=be*Tt.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Yt.tl,u_pattern_br_a:Yt.br,u_pattern_tl_b:Kt.tl,u_pattern_br_b:Kt.br,u_texsize:[xr,Ir],u_mix:Xe.t,u_pattern_size_a:Yt.displaySize,u_pattern_size_b:Kt.displaySize,u_scale_a:Xe.fromScale,u_scale_b:Xe.toScale,u_tile_units_to_pixels:1/In(Tt,1,ot.transform.tileZoom),u_pixel_coord_upper:[De>>16,Be>>16],u_pixel_coord_lower:[65535&De,65535&Be]}}(Q,le,B,ee),{u_matrix:ue,u_opacity:w}),nc={fillExtrusion:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_opacity:new a.aI(ue,w.u_opacity)}),fillExtrusionPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_lightpos:new a.aN(ue,w.u_lightpos),u_lightintensity:new a.aI(ue,w.u_lightintensity),u_lightcolor:new a.aN(ue,w.u_lightcolor),u_vertical_gradient:new a.aI(ue,w.u_vertical_gradient),u_height_factor:new a.aI(ue,w.u_height_factor),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade),u_opacity:new a.aI(ue,w.u_opacity)}),fill:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),fillPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),fillOutline:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world)}),fillOutlinePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_texsize:new a.aO(ue,w.u_texsize),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),circle:(ue,w)=>({u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_scale_with_map:new a.aH(ue,w.u_scale_with_map),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_extrude_scale:new a.aO(ue,w.u_extrude_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_matrix:new a.aJ(ue,w.u_matrix)}),collisionBox:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_pixel_extrude_scale:new a.aO(ue,w.u_pixel_extrude_scale)}),collisionCircle:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_inv_matrix:new a.aJ(ue,w.u_inv_matrix),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_viewport_size:new a.aO(ue,w.u_viewport_size)}),debug:(ue,w)=>({u_color:new a.aL(ue,w.u_color),u_matrix:new a.aJ(ue,w.u_matrix),u_overlay:new a.aH(ue,w.u_overlay),u_overlay_scale:new a.aI(ue,w.u_overlay_scale)}),clippingMask:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix)}),heatmap:(ue,w)=>({u_extrude_scale:new a.aI(ue,w.u_extrude_scale),u_intensity:new a.aI(ue,w.u_intensity),u_matrix:new a.aJ(ue,w.u_matrix)}),heatmapTexture:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_world:new a.aO(ue,w.u_world),u_image:new a.aH(ue,w.u_image),u_color_ramp:new a.aH(ue,w.u_color_ramp),u_opacity:new a.aI(ue,w.u_opacity)}),hillshade:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_latrange:new a.aO(ue,w.u_latrange),u_light:new a.aO(ue,w.u_light),u_shadow:new a.aL(ue,w.u_shadow),u_highlight:new a.aL(ue,w.u_highlight),u_accent:new a.aL(ue,w.u_accent)}),hillshadePrepare:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_image:new a.aH(ue,w.u_image),u_dimension:new a.aO(ue,w.u_dimension),u_zoom:new a.aI(ue,w.u_zoom),u_unpack:new a.aK(ue,w.u_unpack)}),line:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels)}),lineGradient:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_image:new a.aH(ue,w.u_image),u_image_height:new a.aI(ue,w.u_image_height)}),linePattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texsize:new a.aO(ue,w.u_texsize),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_image:new a.aH(ue,w.u_image),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_scale:new a.aN(ue,w.u_scale),u_fade:new a.aI(ue,w.u_fade)}),lineSDF:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ratio:new a.aI(ue,w.u_ratio),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(ue,w.u_units_to_pixels),u_patternscale_a:new a.aO(ue,w.u_patternscale_a),u_patternscale_b:new a.aO(ue,w.u_patternscale_b),u_sdfgamma:new a.aI(ue,w.u_sdfgamma),u_image:new a.aH(ue,w.u_image),u_tex_y_a:new a.aI(ue,w.u_tex_y_a),u_tex_y_b:new a.aI(ue,w.u_tex_y_b),u_mix:new a.aI(ue,w.u_mix)}),raster:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_tl_parent:new a.aO(ue,w.u_tl_parent),u_scale_parent:new a.aI(ue,w.u_scale_parent),u_buffer_scale:new a.aI(ue,w.u_buffer_scale),u_fade_t:new a.aI(ue,w.u_fade_t),u_opacity:new a.aI(ue,w.u_opacity),u_image0:new a.aH(ue,w.u_image0),u_image1:new a.aH(ue,w.u_image1),u_brightness_low:new a.aI(ue,w.u_brightness_low),u_brightness_high:new a.aI(ue,w.u_brightness_high),u_saturation_factor:new a.aI(ue,w.u_saturation_factor),u_contrast_factor:new a.aI(ue,w.u_contrast_factor),u_spin_weights:new a.aN(ue,w.u_spin_weights)}),symbolIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolSDF:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texture:new a.aH(ue,w.u_texture),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),symbolTextAndIcon:(ue,w)=>({u_is_size_zoom_constant:new a.aH(ue,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(ue,w.u_is_size_feature_constant),u_size_t:new a.aI(ue,w.u_size_t),u_size:new a.aI(ue,w.u_size),u_camera_to_center_distance:new a.aI(ue,w.u_camera_to_center_distance),u_pitch:new a.aI(ue,w.u_pitch),u_rotate_symbol:new a.aH(ue,w.u_rotate_symbol),u_aspect_ratio:new a.aI(ue,w.u_aspect_ratio),u_fade_change:new a.aI(ue,w.u_fade_change),u_matrix:new a.aJ(ue,w.u_matrix),u_label_plane_matrix:new a.aJ(ue,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(ue,w.u_coord_matrix),u_is_text:new a.aH(ue,w.u_is_text),u_pitch_with_map:new a.aH(ue,w.u_pitch_with_map),u_is_along_line:new a.aH(ue,w.u_is_along_line),u_is_variable_anchor:new a.aH(ue,w.u_is_variable_anchor),u_texsize:new a.aO(ue,w.u_texsize),u_texsize_icon:new a.aO(ue,w.u_texsize_icon),u_texture:new a.aH(ue,w.u_texture),u_texture_icon:new a.aH(ue,w.u_texture_icon),u_gamma_scale:new a.aI(ue,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(ue,w.u_device_pixel_ratio),u_is_halo:new a.aH(ue,w.u_is_halo),u_translation:new a.aO(ue,w.u_translation),u_pitched_scale:new a.aI(ue,w.u_pitched_scale)}),background:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_color:new a.aL(ue,w.u_color)}),backgroundPattern:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_opacity:new a.aI(ue,w.u_opacity),u_image:new a.aH(ue,w.u_image),u_pattern_tl_a:new a.aO(ue,w.u_pattern_tl_a),u_pattern_br_a:new a.aO(ue,w.u_pattern_br_a),u_pattern_tl_b:new a.aO(ue,w.u_pattern_tl_b),u_pattern_br_b:new a.aO(ue,w.u_pattern_br_b),u_texsize:new a.aO(ue,w.u_texsize),u_mix:new a.aI(ue,w.u_mix),u_pattern_size_a:new a.aO(ue,w.u_pattern_size_a),u_pattern_size_b:new a.aO(ue,w.u_pattern_size_b),u_scale_a:new a.aI(ue,w.u_scale_a),u_scale_b:new a.aI(ue,w.u_scale_b),u_pixel_coord_upper:new a.aO(ue,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(ue,w.u_pixel_coord_lower),u_tile_units_to_pixels:new a.aI(ue,w.u_tile_units_to_pixels)}),terrain:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_ele_delta:new a.aI(ue,w.u_ele_delta),u_fog_matrix:new a.aJ(ue,w.u_fog_matrix),u_fog_color:new a.aL(ue,w.u_fog_color),u_fog_ground_blend:new a.aI(ue,w.u_fog_ground_blend),u_fog_ground_blend_opacity:new a.aI(ue,w.u_fog_ground_blend_opacity),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon_fog_blend:new a.aI(ue,w.u_horizon_fog_blend)}),terrainDepth:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),terrainCoords:(ue,w)=>({u_matrix:new a.aJ(ue,w.u_matrix),u_texture:new a.aH(ue,w.u_texture),u_terrain_coords_id:new a.aI(ue,w.u_terrain_coords_id),u_ele_delta:new a.aI(ue,w.u_ele_delta)}),sky:(ue,w)=>({u_sky_color:new a.aL(ue,w.u_sky_color),u_horizon_color:new a.aL(ue,w.u_horizon_color),u_horizon:new a.aI(ue,w.u_horizon),u_sky_horizon_blend:new a.aI(ue,w.u_sky_horizon_blend)})};class bs{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 Rn={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class _a{constructor(w,B,Q,ee){this.length=B.length,this.attributes=Q,this.itemSize=B.bytesPerElement,this.dynamicDraw=ee,this.context=w;let le=w.gl;this.buffer=le.createBuffer(),w.bindVertexBuffer.set(this.buffer),le.bufferData(le.ARRAY_BUFFER,B.arrayBuffer,this.dynamicDraw?le.DYNAMIC_DRAW:le.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 Ht=a.H();a.aQ(Ht,We.placementInvProjMatrix,ue.transform.glCoordMatrix),a.aQ(Ht,Ht,We.placementViewportMatrix),ot.push({circleArray:Ft,circleOffset:Yt,transform:et.posMatrix,invTransform:Ht,coord:et}),Tt+=Ft.length/4,Yt=Tt}it&&Xe.draw(le,qe.LINES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,{u_matrix:et.posMatrix,u_pixel_extrude_scale:[1/(Kt=ue.transform).width,1/Kt.height]},ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et),B.id,it.layoutVertexBuffer,it.indexBuffer,it.segments,null,ue.transform.zoom,null,null,it.collisionVertexBuffer)}var Kt;if(!ee||!ot.length)return;let xr=ue.useProgram(\"collisionCircle\"),Ir=new a.aR;Ir.resize(4*Tt),Ir._trim();let ve=0;for(let Be of ot)for(let et=0;et=0&&(Be[We.associatedIconIndex]={shiftedAnchor:Kn,angle:Ta})}else pi(We.numGlyphs,be)}if(Tt){De.clear();let et=ue.icon.placedSymbolArray;for(let We=0;Weue.style.map.terrain.getElevation(Wr,nt,jt):null,kt=B.layout.get(\"text-rotation-alignment\")===\"map\";je(Pi,Wr.posMatrix,ue,ee,Ul,au,Be,Tt,kt,be,Wr.toUnwrapped(),ve.width,ve.height,Js,Ye)}let Tl=Wr.posMatrix,Al=ee&&dr||dc,X=et||Al?bl:Ul,se=Lu,Te=Cn&&B.paint.get(ee?\"text-halo-width\":\"icon-halo-width\").constantOr(1)!==0,Ne;Ne=Cn?Pi.iconsInText?ls(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,Qa,Ts,Or):Io(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,!0,Or):zs(Kn.kind,$a,We,Be,et,Al,ue,Tl,X,se,Js,ee,Qa,Or);let He={program:fa,buffers:cn,uniformValues:Ne,atlasTexture:mo,atlasTextureIcon:wo,atlasInterpolation:Bo,atlasInterpolationIcon:Ps,isSDF:Cn,hasHalo:Te};if(Ft&&Pi.canOverlap){Ht=!0;let Ye=cn.segments.get();for(let kt of Ye)Sr.push({segments:new a.a0([kt]),sortKey:kt.sortKey,state:He,terrainData:Co})}else Sr.push({segments:cn.segments,sortKey:0,state:He,terrainData:Co})}Ht&&Sr.sort((Wr,ni)=>Wr.sortKey-ni.sortKey);for(let Wr of Sr){let ni=Wr.state;if(xr.activeTexture.set(Ir.TEXTURE0),ni.atlasTexture.bind(ni.atlasInterpolation,Ir.CLAMP_TO_EDGE),ni.atlasTextureIcon&&(xr.activeTexture.set(Ir.TEXTURE1),ni.atlasTextureIcon&&ni.atlasTextureIcon.bind(ni.atlasInterpolationIcon,Ir.CLAMP_TO_EDGE)),ni.isSDF){let Pi=ni.uniformValues;ni.hasHalo&&(Pi.u_is_halo=1,Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,Pi,Wr.terrainData)),Pi.u_is_halo=0}Qf(ni.buffers,Wr.segments,B,ue,ni.program,tr,Yt,Kt,ni.uniformValues,Wr.terrainData)}}function Qf(ue,w,B,Q,ee,le,qe,Xe,ot,Tt){let Yt=Q.context;ee.draw(Yt,Yt.gl.TRIANGLES,le,qe,Xe,Pa.disabled,ot,Tt,B.id,ue.layoutVertexBuffer,ue.indexBuffer,w,B.paint,Q.transform.zoom,ue.programConfigurations.get(B.id),ue.dynamicLayoutVertexBuffer,ue.opacityVertexBuffer)}function _f(ue,w,B,Q){let ee=ue.context,le=ee.gl,qe=Yo.disabled,Xe=new qs([le.ONE,le.ONE],a.aM.transparent,[!0,!0,!0,!0]),ot=w.getBucket(B);if(!ot)return;let Tt=Q.key,Yt=B.heatmapFbos.get(Tt);Yt||(Yt=eh(ee,w.tileSize,w.tileSize),B.heatmapFbos.set(Tt,Yt)),ee.bindFramebuffer.set(Yt.framebuffer),ee.viewport.set([0,0,w.tileSize,w.tileSize]),ee.clear({color:a.aM.transparent});let Kt=ot.programConfigurations.get(B.id),xr=ue.useProgram(\"heatmap\",Kt),Ir=ue.style.map.terrain.getTerrainData(Q);xr.draw(ee,le.TRIANGLES,Po.disabled,qe,Xe,Pa.disabled,ko(Q.posMatrix,w,ue.transform.zoom,B.paint.get(\"heatmap-intensity\")),Ir,B.id,ot.layoutVertexBuffer,ot.indexBuffer,ot.segments,B.paint,ue.transform.zoom,Kt)}function Yc(ue,w,B){let Q=ue.context,ee=Q.gl;Q.setColorMode(ue.colorModeForRenderPass());let le=th(Q,w),qe=B.key,Xe=w.heatmapFbos.get(qe);Xe&&(Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Xe.colorAttachment.get()),Q.activeTexture.set(ee.TEXTURE1),le.bind(ee.LINEAR,ee.CLAMP_TO_EDGE),ue.useProgram(\"heatmapTexture\").draw(Q,ee.TRIANGLES,Po.disabled,Yo.disabled,ue.colorModeForRenderPass(),Pa.disabled,Ds(ue,w,0,1),null,w.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments,w.paint,ue.transform.zoom),Xe.destroy(),w.heatmapFbos.delete(qe))}function eh(ue,w,B){var Q,ee;let le=ue.gl,qe=le.createTexture();le.bindTexture(le.TEXTURE_2D,qe),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_S,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_WRAP_T,le.CLAMP_TO_EDGE),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MIN_FILTER,le.LINEAR),le.texParameteri(le.TEXTURE_2D,le.TEXTURE_MAG_FILTER,le.LINEAR);let Xe=(Q=ue.HALF_FLOAT)!==null&&Q!==void 0?Q:le.UNSIGNED_BYTE,ot=(ee=ue.RGBA16F)!==null&&ee!==void 0?ee:le.RGBA;le.texImage2D(le.TEXTURE_2D,0,ot,w,B,0,le.RGBA,Xe,null);let Tt=ue.createFramebuffer(w,B,!1,!1);return Tt.colorAttachment.set(qe),Tt}function th(ue,w){return w.colorRampTexture||(w.colorRampTexture=new g(ue,w.colorRamp,ue.gl.RGBA)),w.colorRampTexture}function ju(ue,w,B,Q,ee){if(!B||!Q||!Q.imageAtlas)return;let le=Q.imageAtlas.patternPositions,qe=le[B.to.toString()],Xe=le[B.from.toString()];if(!qe&&Xe&&(qe=Xe),!Xe&&qe&&(Xe=qe),!qe||!Xe){let ot=ee.getPaintProperty(w);qe=le[ot],Xe=le[ot]}qe&&Xe&&ue.setConstantPatternPositions(qe,Xe)}function Hf(ue,w,B,Q,ee,le,qe){let Xe=ue.context.gl,ot=\"fill-pattern\",Tt=B.paint.get(ot),Yt=Tt&&Tt.constantOr(1),Kt=B.getCrossfadeParameters(),xr,Ir,ve,be,De;qe?(Ir=Yt&&!B.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",xr=Xe.LINES):(Ir=Yt?\"fillPattern\":\"fill\",xr=Xe.TRIANGLES);let Be=Tt.constantOr(null);for(let et of Q){let We=w.getTile(et);if(Yt&&!We.patternsLoaded())continue;let it=We.getBucket(B);if(!it)continue;let Ft=it.programConfigurations.get(B.id),Ht=ue.useProgram(Ir,Ft),tr=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(et);Yt&&(ue.context.activeTexture.set(Xe.TEXTURE0),We.imageAtlasTexture.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),Ft.updatePaintBuffers(Kt)),ju(Ft,ot,Be,We,B);let dr=tr?et:null,Sr=ue.translatePosMatrix(dr?dr.posMatrix:et.posMatrix,We,B.paint.get(\"fill-translate\"),B.paint.get(\"fill-translate-anchor\"));if(qe){be=it.indexBuffer2,De=it.segments2;let Or=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];ve=Ir===\"fillOutlinePattern\"&&Yt?Ma(Sr,ue,Kt,We,Or):Jn(Sr,Or)}else be=it.indexBuffer,De=it.segments,ve=Yt?ya(Sr,ue,Kt,We):_n(Sr);Ht.draw(ue.context,xr,ee,ue.stencilModeForClipping(et),le,Pa.disabled,ve,tr,B.id,it.layoutVertexBuffer,be,De,B.paint,ue.transform.zoom,Ft)}}function cc(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=\"fill-extrusion-pattern\",Yt=B.paint.get(Tt),Kt=Yt.constantOr(1),xr=B.getCrossfadeParameters(),Ir=B.paint.get(\"fill-extrusion-opacity\"),ve=Yt.constantOr(null);for(let be of Q){let De=w.getTile(be),Be=De.getBucket(B);if(!Be)continue;let et=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(be),We=Be.programConfigurations.get(B.id),it=ue.useProgram(Kt?\"fillExtrusionPattern\":\"fillExtrusion\",We);Kt&&(ue.context.activeTexture.set(ot.TEXTURE0),De.imageAtlasTexture.bind(ot.LINEAR,ot.CLAMP_TO_EDGE),We.updatePaintBuffers(xr)),ju(We,Tt,ve,De,B);let Ft=ue.translatePosMatrix(be.posMatrix,De,B.paint.get(\"fill-extrusion-translate\"),B.paint.get(\"fill-extrusion-translate-anchor\")),Ht=B.paint.get(\"fill-extrusion-vertical-gradient\"),tr=Kt?Li(Ft,ue,Ht,Ir,be,xr,De):Mn(Ft,ue,Ht,Ir);it.draw(Xe,Xe.gl.TRIANGLES,ee,le,qe,Pa.backCCW,tr,et,B.id,Be.layoutVertexBuffer,Be.indexBuffer,Be.segments,B.paint,ue.transform.zoom,We,ue.style.map.terrain&&Be.centroidVertexBuffer)}}function of(ue,w,B,Q,ee,le,qe){let Xe=ue.context,ot=Xe.gl,Tt=B.fbo;if(!Tt)return;let Yt=ue.useProgram(\"hillshade\"),Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(w);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,Tt.colorAttachment.get()),Yt.draw(Xe,ot.TRIANGLES,ee,le,qe,Pa.disabled,((xr,Ir,ve,be)=>{let De=ve.paint.get(\"hillshade-shadow-color\"),Be=ve.paint.get(\"hillshade-highlight-color\"),et=ve.paint.get(\"hillshade-accent-color\"),We=ve.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);ve.paint.get(\"hillshade-illumination-anchor\")===\"viewport\"&&(We-=xr.transform.angle);let it=!xr.options.moving;return{u_matrix:be?be.posMatrix:xr.transform.calculatePosMatrix(Ir.tileID.toUnwrapped(),it),u_image:0,u_latrange:Fs(0,Ir.tileID),u_light:[ve.paint.get(\"hillshade-exaggeration\"),We],u_shadow:De,u_highlight:Be,u_accent:et}})(ue,B,Q,Kt?w:null),Kt,Q.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments)}function Nl(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl,ot=w.dem;if(ot&&ot.data){let Tt=ot.dim,Yt=ot.stride,Kt=ot.getPixels();if(qe.activeTexture.set(Xe.TEXTURE1),qe.pixelStoreUnpackPremultiplyAlpha.set(!1),w.demTexture=w.demTexture||ue.getTileTexture(Yt),w.demTexture){let Ir=w.demTexture;Ir.update(Kt,{premultiply:!1}),Ir.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE)}else w.demTexture=new g(qe,Kt,Xe.RGBA,{premultiply:!1}),w.demTexture.bind(Xe.NEAREST,Xe.CLAMP_TO_EDGE);qe.activeTexture.set(Xe.TEXTURE0);let xr=w.fbo;if(!xr){let Ir=new g(qe,{width:Tt,height:Tt,data:null},Xe.RGBA);Ir.bind(Xe.LINEAR,Xe.CLAMP_TO_EDGE),xr=w.fbo=qe.createFramebuffer(Tt,Tt,!0,!1),xr.colorAttachment.set(Ir.texture)}qe.bindFramebuffer.set(xr.framebuffer),qe.viewport.set([0,0,Tt,Tt]),ue.useProgram(\"hillshadePrepare\").draw(qe,Xe.TRIANGLES,Q,ee,le,Pa.disabled,((Ir,ve)=>{let be=ve.stride,De=a.H();return a.aP(De,0,a.X,-a.X,0,0,1),a.J(De,De,[0,-a.X,0]),{u_matrix:De,u_image:1,u_dimension:[be,be],u_zoom:Ir.overscaledZ,u_unpack:ve.getUnpackVector()}})(w.tileID,ot),null,B.id,ue.rasterBoundsBuffer,ue.quadTriangleIndexBuffer,ue.rasterBoundsSegments),w.needsHillshadePrepare=!1}}function Kc(ue,w,B,Q,ee,le){let qe=Q.paint.get(\"raster-fade-duration\");if(!le&&qe>0){let Xe=u.now(),ot=(Xe-ue.timeAdded)/qe,Tt=w?(Xe-w.timeAdded)/qe:-1,Yt=B.getSource(),Kt=ee.coveringZoomLevel({tileSize:Yt.tileSize,roundZoom:Yt.roundZoom}),xr=!w||Math.abs(w.tileID.overscaledZ-Kt)>Math.abs(ue.tileID.overscaledZ-Kt),Ir=xr&&ue.refreshedUponExpiration?1:a.ac(xr?ot:1-Tt,0,1);return ue.refreshedUponExpiration&&ot>=1&&(ue.refreshedUponExpiration=!1),w?{opacity:1,mix:1-Ir}:{opacity:Ir,mix:0}}return{opacity:1,mix:0}}let Rc=new a.aM(1,0,0,1),gs=new a.aM(0,1,0,1),jf=new a.aM(0,0,1,1),Gh=new a.aM(1,0,1,1),rh=new a.aM(0,1,1,1);function sf(ue,w,B,Q){Mu(ue,0,w+B/2,ue.transform.width,B,Q)}function Th(ue,w,B,Q){Mu(ue,w-B/2,0,B,ue.transform.height,Q)}function Mu(ue,w,B,Q,ee,le){let qe=ue.context,Xe=qe.gl;Xe.enable(Xe.SCISSOR_TEST),Xe.scissor(w*ue.pixelRatio,B*ue.pixelRatio,Q*ue.pixelRatio,ee*ue.pixelRatio),qe.clear({color:le}),Xe.disable(Xe.SCISSOR_TEST)}function ih(ue,w,B){let Q=ue.context,ee=Q.gl,le=B.posMatrix,qe=ue.useProgram(\"debug\"),Xe=Po.disabled,ot=Yo.disabled,Tt=ue.colorModeForRenderPass(),Yt=\"$debug\",Kt=ue.style.map.terrain&&ue.style.map.terrain.getTerrainData(B);Q.activeTexture.set(ee.TEXTURE0);let xr=w.getTileByID(B.key).latestRawTileData,Ir=Math.floor((xr&&xr.byteLength||0)/1024),ve=w.getTile(B).tileSize,be=512/Math.min(ve,512)*(B.overscaledZ/ue.transform.zoom)*.5,De=B.canonical.toString();B.overscaledZ!==B.canonical.z&&(De+=` => ${B.overscaledZ}`),function(Be,et){Be.initDebugOverlayCanvas();let We=Be.debugOverlayCanvas,it=Be.context.gl,Ft=Be.debugOverlayCanvas.getContext(\"2d\");Ft.clearRect(0,0,We.width,We.height),Ft.shadowColor=\"white\",Ft.shadowBlur=2,Ft.lineWidth=1.5,Ft.strokeStyle=\"white\",Ft.textBaseline=\"top\",Ft.font=\"bold 36px Open Sans, sans-serif\",Ft.fillText(et,5,5),Ft.strokeText(et,5,5),Be.debugOverlayTexture.update(We),Be.debugOverlayTexture.bind(it.LINEAR,it.CLAMP_TO_EDGE)}(ue,`${De} ${Ir}kB`),qe.draw(Q,ee.TRIANGLES,Xe,ot,qs.alphaBlended,Pa.disabled,po(le,a.aM.transparent,be),null,Yt,ue.debugBuffer,ue.quadTriangleIndexBuffer,ue.debugSegments),qe.draw(Q,ee.LINE_STRIP,Xe,ot,Tt,Pa.disabled,po(le,a.aM.red),Kt,Yt,ue.debugBuffer,ue.tileBorderIndexBuffer,ue.debugSegments)}function js(ue,w,B){let Q=ue.context,ee=Q.gl,le=ue.colorModeForRenderPass(),qe=new Po(ee.LEQUAL,Po.ReadWrite,ue.depthRangeFor3D),Xe=ue.useProgram(\"terrain\"),ot=w.getTerrainMesh();Q.bindFramebuffer.set(null),Q.viewport.set([0,0,ue.width,ue.height]);for(let Tt of B){let Yt=ue.renderToTexture.getTexture(Tt),Kt=w.getTerrainData(Tt.tileID);Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Yt.texture);let xr=ue.transform.calculatePosMatrix(Tt.tileID.toUnwrapped()),Ir=w.getMeshFrameDelta(ue.transform.zoom),ve=ue.transform.calculateFogMatrix(Tt.tileID.toUnwrapped()),be=Jr(xr,Ir,ve,ue.style.sky,ue.transform.pitch);Xe.draw(Q,ee.TRIANGLES,qe,Yo.disabled,le,Pa.backCCW,be,Kt,\"terrain\",ot.vertexBuffer,ot.indexBuffer,ot.segments)}}class Eu{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 Dc{constructor(w,B){this.context=new ad(w),this.transform=B,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:a.an(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=mt.maxUnderzooming+mt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Wo}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,vo.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,vo.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,lt.members),this.rasterBoundsSegments=a.a0.simpleSegment(0,0,4,2);let le=new a.aX;le.emplaceBack(0,0),le.emplaceBack(1,0),le.emplaceBack(0,1),le.emplaceBack(1,1),this.viewportBuffer=w.createVertexBuffer(le,vo.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 Xe=new a.aY;Xe.emplaceBack(0,1,2),Xe.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=w.createIndexBuffer(Xe);let ot=this.context.gl;this.stencilClearMode=new Yo({func:ot.ALWAYS,mask:0},0,255,ot.ZERO,ot.ZERO,ot.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,Po.disabled,this.stencilClearMode,qs.disabled,Pa.disabled,Lo(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(qs.disabled),Q.setDepthMode(Po.disabled);let le=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(let qe of B){let Xe=this._tileClippingMaskIDs[qe.key]=this.nextStencilID++,ot=this.style.map.terrain&&this.style.map.terrain.getTerrainData(qe);le.draw(Q,ee.TRIANGLES,Po.disabled,new Yo({func:ee.ALWAYS,mask:0},Xe,255,ee.KEEP,ee.KEEP,ee.REPLACE),qs.disabled,Pa.disabled,Lo(qe.posMatrix),ot,\"$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 Yo({func:B.NOTEQUAL,mask:255},w,255,B.KEEP,B.KEEP,B.REPLACE)}stencilModeForClipping(w){let B=this.context.gl;return new Yo({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,Xe)=>Xe.overscaledZ-qe.overscaledZ),ee=Q[Q.length-1].overscaledZ,le=Q[0].overscaledZ-ee+1;if(le>1){this.currentStencilSource=void 0,this.nextStencilID+le>256&&this.clearStencil();let qe={};for(let Xe=0;Xe({u_sky_color:Be.properties.get(\"sky-color\"),u_horizon_color:Be.properties.get(\"horizon-color\"),u_horizon:(et.height/2+et.getHorizon())*We,u_sky_horizon_blend:Be.properties.get(\"sky-horizon-blend\")*et.height/2*We}))(Tt,ot.style.map.transform,ot.pixelRatio),Ir=new Po(Kt.LEQUAL,Po.ReadWrite,[0,1]),ve=Yo.disabled,be=ot.colorModeForRenderPass(),De=ot.useProgram(\"sky\");if(!Tt.mesh){let Be=new a.aX;Be.emplaceBack(-1,-1),Be.emplaceBack(1,-1),Be.emplaceBack(1,1),Be.emplaceBack(-1,1);let et=new a.aY;et.emplaceBack(0,1,2),et.emplaceBack(0,2,3),Tt.mesh=new Eu(Yt.createVertexBuffer(Be,vo.members),Yt.createIndexBuffer(et),a.a0.simpleSegment(0,0,Be.length,et.length))}De.draw(Yt,Kt.TRIANGLES,Ir,ve,be,Pa.disabled,xr,void 0,\"sky\",Tt.mesh.vertexBuffer,Tt.mesh.indexBuffer,Tt.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 ot=this.style._layers[Q[this.currentLayer]],Tt=ee[ot.source],Yt=le[ot.source];this._renderTileClippingMasks(ot,Yt),this.renderLayer(this,Tt,ot,Yt)}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayerDe.source&&!De.isHidden(Yt)?[Tt.sourceCaches[De.source]]:[]),Ir=xr.filter(De=>De.getSource().type===\"vector\"),ve=xr.filter(De=>De.getSource().type!==\"vector\"),be=De=>{(!Kt||Kt.getSource().maxzoombe(De)),Kt||ve.forEach(De=>be(De)),Kt}(this.style,this.transform.zoom);ot&&function(Tt,Yt,Kt){for(let xr=0;xr0),ee&&(a.b0(B,Q),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.sourceCache.getRenderableTiles(),Ir=le.useProgram(\"terrainDepth\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"depth\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1});for(let ve of xr){let be=qe.getTerrainData(ve.tileID),De={u_matrix:le.transform.calculatePosMatrix(ve.tileID.toUnwrapped()),u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};Ir.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,De,be,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.height])}(this,this.style.map.terrain),function(le,qe){let Xe=le.context,ot=Xe.gl,Tt=qs.unblended,Yt=new Po(ot.LEQUAL,Po.ReadWrite,[0,1]),Kt=qe.getTerrainMesh(),xr=qe.getCoordsTexture(),Ir=qe.sourceCache.getRenderableTiles(),ve=le.useProgram(\"terrainCoords\");Xe.bindFramebuffer.set(qe.getFramebuffer(\"coords\").framebuffer),Xe.viewport.set([0,0,le.width/devicePixelRatio,le.height/devicePixelRatio]),Xe.clear({color:a.aM.transparent,depth:1}),qe.coordsIndex=[];for(let be of Ir){let De=qe.getTerrainData(be.tileID);Xe.activeTexture.set(ot.TEXTURE0),ot.bindTexture(ot.TEXTURE_2D,xr.texture);let Be={u_matrix:le.transform.calculatePosMatrix(be.tileID.toUnwrapped()),u_terrain_coords_id:(255-qe.coordsIndex.length)/255,u_texture:0,u_ele_delta:qe.getMeshFrameDelta(le.transform.zoom)};ve.draw(Xe,ot.TRIANGLES,Yt,Yo.disabled,Tt,Pa.backCCW,Be,De,\"terrain\",Kt.vertexBuffer,Kt.indexBuffer,Kt.segments),qe.coordsIndex.push(be.tileID.key)}Xe.bindFramebuffer.set(null),Xe.viewport.set([0,0,le.width,le.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(le,qe,Xe,ot,Tt){if(le.renderPass!==\"translucent\")return;let Yt=Yo.disabled,Kt=le.colorModeForRenderPass();(Xe._unevaluatedLayout.hasValue(\"text-variable-anchor\")||Xe._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"))&&function(xr,Ir,ve,be,De,Be,et,We,it){let Ft=Ir.transform,Ht=yn(),tr=De===\"map\",dr=Be===\"map\";for(let Sr of xr){let Or=be.getTile(Sr),Wr=Or.getBucket(ve);if(!Wr||!Wr.text||!Wr.text.segments.get().length)continue;let ni=a.ag(Wr.textSizeData,Ft.zoom),Pi=In(Or,1,Ir.transform.zoom),cn=Br(Sr.posMatrix,dr,tr,Ir.transform,Pi),ln=ve.layout.get(\"icon-text-fit\")!==\"none\"&&Wr.hasIconData();if(ni){let Cn=Math.pow(2,Ft.zoom-Or.tileID.overscaledZ),Kn=Ir.style.map.terrain?(fa,$a)=>Ir.style.map.terrain.getElevation(Sr,fa,$a):null,Ta=Ht.translatePosition(Ft,Or,et,We);yf(Wr,tr,dr,it,Ft,cn,Sr.posMatrix,Cn,ni,ln,Ht,Ta,Sr.toUnwrapped(),Kn)}}}(ot,le,Xe,qe,Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Tt),Xe.paint.get(\"icon-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!1,Xe.paint.get(\"icon-translate\"),Xe.paint.get(\"icon-translate-anchor\"),Xe.layout.get(\"icon-rotation-alignment\"),Xe.layout.get(\"icon-pitch-alignment\"),Xe.layout.get(\"icon-keep-upright\"),Yt,Kt),Xe.paint.get(\"text-opacity\").constantOr(1)!==0&&wh(le,qe,Xe,ot,!0,Xe.paint.get(\"text-translate\"),Xe.paint.get(\"text-translate-anchor\"),Xe.layout.get(\"text-rotation-alignment\"),Xe.layout.get(\"text-pitch-alignment\"),Xe.layout.get(\"text-keep-upright\"),Yt,Kt),qe.map.showCollisionBoxes&&(Hu(le,qe,Xe,ot,!0),Hu(le,qe,Xe,ot,!1))})(w,B,Q,ee,this.style.placement.variableOffsets);break;case\"circle\":(function(le,qe,Xe,ot){if(le.renderPass!==\"translucent\")return;let Tt=Xe.paint.get(\"circle-opacity\"),Yt=Xe.paint.get(\"circle-stroke-width\"),Kt=Xe.paint.get(\"circle-stroke-opacity\"),xr=!Xe.layout.get(\"circle-sort-key\").isConstant();if(Tt.constantOr(1)===0&&(Yt.constantOr(1)===0||Kt.constantOr(1)===0))return;let Ir=le.context,ve=Ir.gl,be=le.depthModeForSublayer(0,Po.ReadOnly),De=Yo.disabled,Be=le.colorModeForRenderPass(),et=[];for(let We=0;WeWe.sortKey-it.sortKey);for(let We of et){let{programConfiguration:it,program:Ft,layoutVertexBuffer:Ht,indexBuffer:tr,uniformValues:dr,terrainData:Sr}=We.state;Ft.draw(Ir,ve.TRIANGLES,be,De,Be,Pa.disabled,dr,Sr,Xe.id,Ht,tr,We.segments,Xe.paint,le.transform.zoom,it)}})(w,B,Q,ee);break;case\"heatmap\":(function(le,qe,Xe,ot){if(Xe.paint.get(\"heatmap-opacity\")===0)return;let Tt=le.context;if(le.style.map.terrain){for(let Yt of ot){let Kt=qe.getTile(Yt);qe.hasRenderableParent(Yt)||(le.renderPass===\"offscreen\"?_f(le,Kt,Xe,Yt):le.renderPass===\"translucent\"&&Yc(le,Xe,Yt))}Tt.viewport.set([0,0,le.width,le.height])}else le.renderPass===\"offscreen\"?function(Yt,Kt,xr,Ir){let ve=Yt.context,be=ve.gl,De=Yo.disabled,Be=new qs([be.ONE,be.ONE],a.aM.transparent,[!0,!0,!0,!0]);(function(et,We,it){let Ft=et.gl;et.activeTexture.set(Ft.TEXTURE1),et.viewport.set([0,0,We.width/4,We.height/4]);let Ht=it.heatmapFbos.get(a.aU);Ht?(Ft.bindTexture(Ft.TEXTURE_2D,Ht.colorAttachment.get()),et.bindFramebuffer.set(Ht.framebuffer)):(Ht=eh(et,We.width/4,We.height/4),it.heatmapFbos.set(a.aU,Ht))})(ve,Yt,xr),ve.clear({color:a.aM.transparent});for(let et=0;et20&&Yt.texParameterf(Yt.TEXTURE_2D,Tt.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,Tt.extTextureFilterAnisotropicMax);let Wr=le.style.map.terrain&&le.style.map.terrain.getTerrainData(et),ni=Wr?et:null,Pi=ni?ni.posMatrix:le.transform.calculatePosMatrix(et.toUnwrapped(),Be),cn=cl(Pi,Sr||[0,0],dr||1,tr,Xe);Kt instanceof Gt?xr.draw(Tt,Yt.TRIANGLES,We,Yo.disabled,Ir,Pa.disabled,cn,Wr,Xe.id,Kt.boundsBuffer,le.quadTriangleIndexBuffer,Kt.boundsSegments):xr.draw(Tt,Yt.TRIANGLES,We,ve[et.overscaledZ],Ir,Pa.disabled,cn,Wr,Xe.id,le.rasterBoundsBuffer,le.quadTriangleIndexBuffer,le.rasterBoundsSegments)}})(w,B,Q,ee);break;case\"background\":(function(le,qe,Xe,ot){let Tt=Xe.paint.get(\"background-color\"),Yt=Xe.paint.get(\"background-opacity\");if(Yt===0)return;let Kt=le.context,xr=Kt.gl,Ir=le.transform,ve=Ir.tileSize,be=Xe.paint.get(\"background-pattern\");if(le.isPatternMissing(be))return;let De=!be&&Tt.a===1&&Yt===1&&le.opaquePassEnabledForLayer()?\"opaque\":\"translucent\";if(le.renderPass!==De)return;let Be=Yo.disabled,et=le.depthModeForSublayer(0,De===\"opaque\"?Po.ReadWrite:Po.ReadOnly),We=le.colorModeForRenderPass(),it=le.useProgram(be?\"backgroundPattern\":\"background\"),Ft=ot||Ir.coveringTiles({tileSize:ve,terrain:le.style.map.terrain});be&&(Kt.activeTexture.set(xr.TEXTURE0),le.imageManager.bind(le.context));let Ht=Xe.getCrossfadeParameters();for(let tr of Ft){let dr=ot?tr.posMatrix:le.transform.calculatePosMatrix(tr.toUnwrapped()),Sr=be?Su(dr,Yt,le,be,{tileID:tr,tileSize:ve},Ht):Zl(dr,Yt,Tt),Or=le.style.map.terrain&&le.style.map.terrain.getTerrainData(tr);it.draw(Kt,xr.TRIANGLES,et,Be,We,Pa.disabled,Sr,Or,Xe.id,le.tileExtentBuffer,le.quadTriangleIndexBuffer,le.tileExtentSegments)}})(w,0,Q,ee);break;case\"custom\":(function(le,qe,Xe){let ot=le.context,Tt=Xe.implementation;if(le.renderPass===\"offscreen\"){let Yt=Tt.prerender;Yt&&(le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),Yt.call(Tt,ot.gl,le.transform.customLayerMatrix()),ot.setDirty(),le.setBaseState())}else if(le.renderPass===\"translucent\"){le.setCustomLayerDefaults(),ot.setColorMode(le.colorModeForRenderPass()),ot.setStencilMode(Yo.disabled);let Yt=Tt.renderingMode===\"3d\"?new Po(le.context.gl.LEQUAL,Po.ReadWrite,le.depthRangeFor3D):le.depthModeForSublayer(0,Po.ReadOnly);ot.setDepthMode(Yt),Tt.render(ot.gl,le.transform.customLayerMatrix(),{farZ:le.transform.farZ,nearZ:le.transform.nearZ,fov:le.transform._fov,modelViewProjectionMatrix:le.transform.modelViewProjectionMatrix,projectionMatrix:le.transform.projectionMatrix}),ot.setDirty(),le.setBaseState(),ot.bindFramebuffer.set(null)}})(w,0,Q)}}translatePosMatrix(w,B,Q,ee,le){if(!Q[0]&&!Q[1])return w;let qe=le?ee===\"map\"?this.transform.angle:0:ee===\"viewport\"?-this.transform.angle:0;if(qe){let Tt=Math.sin(qe),Yt=Math.cos(qe);Q=[Q[0]*Yt-Q[1]*Tt,Q[0]*Tt+Q[1]*Yt]}let Xe=[le?Q[0]:In(B,Q[0],this.transform.zoom),le?Q[1]:In(B,Q[1],this.transform.zoom),0],ot=new Float32Array(16);return a.J(ot,w,Xe),ot}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 hn(this.context,jn[w],B,nc[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 g(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 ks{constructor(w,B){this.points=w,this.planes=B}static fromInvProjectionMatrix(w,B,Q){let ee=Math.pow(2,Q),le=[[-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(Xe=>{let ot=1/(Xe=a.af([],Xe,w))[3]/B*ee;return a.b1(Xe,Xe,[ot,ot,1/Xe[3],ot])}),qe=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(Xe=>{let ot=function(xr,Ir){var ve=Ir[0],be=Ir[1],De=Ir[2],Be=ve*ve+be*be+De*De;return Be>0&&(Be=1/Math.sqrt(Be)),xr[0]=Ir[0]*Be,xr[1]=Ir[1]*Be,xr[2]=Ir[2]*Be,xr}([],function(xr,Ir,ve){var be=Ir[0],De=Ir[1],Be=Ir[2],et=ve[0],We=ve[1],it=ve[2];return xr[0]=De*it-Be*We,xr[1]=Be*et-be*it,xr[2]=be*We-De*et,xr}([],L([],le[Xe[0]],le[Xe[1]]),L([],le[Xe[2]],le[Xe[1]]))),Tt=-((Yt=ot)[0]*(Kt=le[Xe[1]])[0]+Yt[1]*Kt[1]+Yt[2]*Kt[2]);var Yt,Kt;return ot.concat(Tt)});return new ks(le,qe)}}class bc{constructor(w,B){this.min=w,this.max=B,this.center=function(Q,ee,le){return Q[0]=.5*ee[0],Q[1]=.5*ee[1],Q[2]=.5*ee[2],Q}([],function(Q,ee,le){return Q[0]=ee[0]+le[0],Q[1]=ee[1]+le[1],Q[2]=ee[2]+le[2],Q}([],this.min,this.max))}quadrant(w){let B=[w%2==0,w<2],Q=E(this.min),ee=E(this.max);for(let le=0;le=0&&qe++;if(qe===0)return 0;qe!==B.length&&(Q=!1)}if(Q)return 2;for(let ee=0;ee<3;ee++){let le=Number.MAX_VALUE,qe=-Number.MAX_VALUE;for(let Xe=0;Xethis.max[ee]-this.min[ee])return 0}return 1}}class hu{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 hu(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}let _u=85.051129;class nl{constructor(w,B,Q,ee,le){this.tileSize=512,this._renderWorldCopies=le===void 0||!!le,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 hu,this._posMatrixCache={},this._alignedPosMatrixCache={},this._fogMatrixCache={},this.minElevationForCurrentTile=0}clone(){let w=new nl(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,le){var qe=ee[0],Xe=ee[1],ot=ee[2],Tt=ee[3],Yt=Math.sin(le),Kt=Math.cos(le);Q[0]=qe*Kt+ot*Yt,Q[1]=Xe*Kt+Tt*Yt,Q[2]=qe*-Yt+ot*Kt,Q[3]=Xe*-Yt+Tt*Kt}(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)),le=this.pointCoordinate(new a.P(this.width,this.height)),qe=this.pointCoordinate(new a.P(0,this.height)),Xe=Math.floor(Math.min(Q.x,ee.x,le.x,qe.x)),ot=Math.floor(Math.max(Q.x,ee.x,le.x,qe.x)),Tt=1;for(let Yt=Xe-Tt;Yt<=ot+Tt;Yt++)Yt!==0&&B.push(new a.b4(Yt,w))}return B}coveringTiles(w){var B,Q;let ee=this.coveringZoomLevel(w),le=ee;if(w.minzoom!==void 0&&eew.maxzoom&&(ee=w.maxzoom);let qe=this.pointCoordinate(this.getCameraPoint()),Xe=a.Z.fromLngLat(this.center),ot=Math.pow(2,ee),Tt=[ot*qe.x,ot*qe.y,0],Yt=[ot*Xe.x,ot*Xe.y,0],Kt=ks.fromInvProjectionMatrix(this.invModelViewProjectionMatrix,this.worldSize,ee),xr=w.minzoom||0;!w.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(xr=ee);let Ir=w.terrain?2/Math.min(this.tileSize,w.tileSize)*this.tileSize:3,ve=We=>({aabb:new bc([We*ot,0,0],[(We+1)*ot,ot,0]),zoom:0,x:0,y:0,wrap:We,fullyVisible:!1}),be=[],De=[],Be=ee,et=w.reparseOverscaled?le:ee;if(this._renderWorldCopies)for(let We=1;We<=3;We++)be.push(ve(-We)),be.push(ve(We));for(be.push(ve(0));be.length>0;){let We=be.pop(),it=We.x,Ft=We.y,Ht=We.fullyVisible;if(!Ht){let Wr=We.aabb.intersects(Kt);if(Wr===0)continue;Ht=Wr===2}let tr=w.terrain?Tt:Yt,dr=We.aabb.distanceX(tr),Sr=We.aabb.distanceY(tr),Or=Math.max(Math.abs(dr),Math.abs(Sr));if(We.zoom===Be||Or>Ir+(1<=xr){let Wr=Be-We.zoom,ni=Tt[0]-.5-(it<>1),cn=We.zoom+1,ln=We.aabb.quadrant(Wr);if(w.terrain){let Cn=new a.S(cn,We.wrap,cn,ni,Pi),Kn=w.terrain.getMinMaxElevation(Cn),Ta=(B=Kn.minElevation)!==null&&B!==void 0?B:this.elevation,fa=(Q=Kn.maxElevation)!==null&&Q!==void 0?Q:this.elevation;ln=new bc([ln.min[0],ln.min[1],Ta],[ln.max[0],ln.max[1],fa])}be.push({aabb:ln,zoom:cn,x:ni,y:Pi,wrap:We.wrap,fullyVisible:Ht})}}return De.sort((We,it)=>We.distanceSq-it.distanceSq).map(We=>We.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,_u);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),le=w.getElevationForLngLatZoom(ee,this.tileZoom);if(!(this.elevation-le))return;let qe=Q+B-le,Xe=Math.cos(this._pitch)*this.cameraToCenterDistance/qe/a.b5(1,ee.lat),ot=this.scaleZoom(Xe/this.tileSize);this._elevation=le,this._center=ee,this.zoom=ot}setLocationAtPoint(w,B){let Q=this.pointCoordinate(B),ee=this.pointCoordinate(this.centerPoint),le=this.locationCoordinate(w),qe=new a.Z(le.x-(Q.x-ee.x),le.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 xr=B.pointCoordinate(w);if(xr!=null)return xr}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 le=Q[3],qe=ee[3],Xe=Q[1]/le,ot=ee[1]/qe,Tt=Q[2]/le,Yt=ee[2]/qe,Kt=Tt===Yt?0:(0-Tt)/(Yt-Tt);return new a.Z(a.y.number(Q[0]/le,ee[0]/qe,Kt)/this.worldSize,a.y.number(Xe,ot,Kt)/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,_u])}calculateTileMatrix(w){let B=w.canonical,Q=this.worldSize/this.zoomScale(B.z),ee=B.x+Math.pow(2,B.z)*w.wrap,le=a.an(new Float64Array(16));return a.J(le,le,[ee*Q,B.y*Q,0]),a.K(le,le,[Q/a.X,Q/a.X,1]),le}calculatePosMatrix(w,B=!1){let Q=w.key,ee=B?this._alignedPosMatrixCache:this._posMatrixCache;if(ee[Q])return ee[Q];let le=this.calculateTileMatrix(w);return a.L(le,B?this.alignedModelViewProjectionMatrix:this.modelViewProjectionMatrix,le),ee[Q]=new Float32Array(le),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 We=179.9999999999;ee=[-We,We]}let le=this.tileSize*this.zoomScale(Q.zoom),qe=0,Xe=le,ot=0,Tt=le,Yt=0,Kt=0,{x:xr,y:Ir}=this.size;if(this.latRange){let We=this.latRange;qe=a.Q(We[1])*le,Xe=a.Q(We[0])*le,Xe-qeXe&&(Be=Xe-We)}if(ee){let We=(ot+Tt)/2,it=ve;this._renderWorldCopies&&(it=a.b3(ve,We-le/2,We+le/2));let Ft=xr/2;it-FtTt&&(De=Tt-Ft)}if(De!==void 0||Be!==void 0){let We=new a.P(De!=null?De:ve,Be!=null?Be:be);Q.center=this.unproject.call({worldSize:le},We).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 le=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),qe=Math.min(this.elevation,this.minElevationForCurrentTile),Xe=le-qe*this._pixelPerMeter/Math.cos(this._pitch),ot=qe<0?Xe:le,Tt=Math.PI/2+this._pitch,Yt=this._fov*(.5+w.y/this.height),Kt=Math.sin(Yt)*ot/Math.sin(a.ac(Math.PI-Tt-Yt,.01,Math.PI-.01)),xr=this.getHorizon(),Ir=2*Math.atan(xr/this.cameraToCenterDistance)*(.5+w.y/(2*xr)),ve=Math.sin(Ir)*ot/Math.sin(a.ac(Math.PI-Tt-Ir,.01,Math.PI-.01)),be=Math.min(Kt,ve);this.farZ=1.01*(Math.cos(Math.PI/2-this._pitch)*be+ot),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,le,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 De=this.width%2/2,Be=this.height%2/2,et=Math.cos(this.angle),We=Math.sin(this.angle),it=B-Math.round(B)+et*De+We*Be,Ft=Q-Math.round(Q)+et*Be+We*De,Ht=new Float64Array(ee);if(a.J(Ht,Ht,[it>.5?it-1:it,Ft>.5?Ft-1:Ft,0]),this.alignedModelViewProjectionMatrix=Ht,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,le=B.x,qe=B.y;for(let Xe of w)Q=Math.min(Q,Xe.x),ee=Math.min(ee,Xe.y),le=Math.max(le,Xe.x),qe=Math.max(qe,Xe.y);return[new a.P(Q,ee),new a.P(le,ee),new a.P(le,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 nh(ue,w){let B,Q=!1,ee=null,le=null,qe=()=>{ee=null,Q&&(ue.apply(le,B),ee=setTimeout(qe,w),Q=!1)};return(...Xe)=>(Q=!0,le=this,B=Xe,ee||qe(),ee)}class Ah{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 le=window.location.hash.replace(ee,\"\");le.startsWith(\"#&\")?le=le.slice(0,1)+le.slice(2):le===\"#\"&&(le=\"\");let qe=window.location.href.replace(/(#.+)?$/,le);qe=qe.replace(\"&&\",\"&\"),window.history.replaceState(window.history.state,null,qe)},this._updateHash=nh(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),le=Math.pow(10,ee),qe=Math.round(B.lng*le)/le,Xe=Math.round(B.lat*le)/le,ot=this._map.getBearing(),Tt=this._map.getPitch(),Yt=\"\";if(Yt+=w?`/${qe}/${Xe}/${Q}`:`${Q}/${Xe}/${qe}`,(ot||Tt)&&(Yt+=\"/\"+Math.round(10*ot)/10),Tt&&(Yt+=`/${Math.round(Tt)}`),this._hashName){let Kt=this._hashName,xr=!1,Ir=window.location.hash.slice(1).split(\"&\").map(ve=>{let be=ve.split(\"=\")[0];return be===Kt?(xr=!0,`${be}=${Yt}`):ve}).filter(ve=>ve);return xr||Ir.push(`${Kt}=${Yt}`),`#${Ir.join(\"&\")}`}return`#${Yt}`}}let zu={linearity:.3,easing:a.b8(0,0,.3,1)},Fc=a.e({deceleration:2500,maxSpeed:1400},zu),wc=a.e({deceleration:20,maxSpeed:1400},zu),bd=a.e({deceleration:1e3,maxSpeed:360},zu),xf=a.e({deceleration:1e3,maxSpeed:90},zu);class Pf{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:le}of this._inertiaBuffer)B.zoom+=le.zoomDelta||0,B.bearing+=le.bearingDelta||0,B.pitch+=le.pitchDelta||0,le.panDelta&&B.pan._add(le.panDelta),le.around&&(B.around=le.around),le.pinchAround&&(B.pinchAround=le.pinchAround);let Q=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,ee={};if(B.pan.mag()){let le=bf(B.pan.mag(),Q,a.e({},Fc,w||{}));ee.offset=B.pan.mult(le.amount/B.pan.mag()),ee.center=this._map.transform.center,Ou(ee,le)}if(B.zoom){let le=bf(B.zoom,Q,wc);ee.zoom=this._map.transform.zoom+le.amount,Ou(ee,le)}if(B.bearing){let le=bf(B.bearing,Q,bd);ee.bearing=this._map.transform.bearing+a.ac(le.amount,-179,179),Ou(ee,le)}if(B.pitch){let le=bf(B.pitch,Q,xf);ee.pitch=this._map.transform.pitch+le.amount,Ou(ee,le)}if(ee.zoom||ee.bearing){let le=B.pinchAround===void 0?B.around:B.pinchAround;ee.around=le?this._map.unproject(le):this._map.getCenter()}return this.clear(),a.e(ee,{noMoveStart:!0})}}function Ou(ue,w){(!ue.duration||ue.durationB.unproject(ot)),Xe=le.reduce((ot,Tt,Yt,Kt)=>ot.add(Tt.div(Kt.length)),new a.P(0,0));super(w,{points:le,point:Xe,lngLats:qe,lngLat:B.unproject(Xe),originalEvent:Q}),this._defaultPrevented=!1}}class Hh extends a.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(w,B,Q){super(w,{originalEvent:Q}),this._defaultPrevented=!1}}class If{constructor(w,B){this._map=w,this._clickTolerance=B.clickTolerance}reset(){delete this._mousedownPos}wheel(w){return this._firePreventable(new Hh(w.type,this._map,w))}mousedown(w,B){return this._mousedownPos=B,this._firePreventable(new jl(w.type,this._map,w))}mouseup(w){this._map.fire(new jl(w.type,this._map,w))}click(w,B){this._mousedownPos&&this._mousedownPos.dist(B)>=this._clickTolerance||this._map.fire(new jl(w.type,this._map,w))}dblclick(w){return this._firePreventable(new jl(w.type,this._map,w))}mouseover(w){this._map.fire(new jl(w.type,this._map,w))}mouseout(w){this._map.fire(new jl(w.type,this._map,w))}touchstart(w){return this._firePreventable(new lf(w.type,this._map,w))}touchmove(w){this._map.fire(new lf(w.type,this._map,w))}touchend(w){this._map.fire(new lf(w.type,this._map,w))}touchcancel(w){this._map.fire(new lf(w.type,this._map,w))}_firePreventable(w){if(this._map.fire(w),w.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Cs{constructor(w){this._map=w}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(w){this._map.fire(new jl(w.type,this._map,w))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new jl(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(w){this._delayContextMenu?this._contextMenuEvent=w:this._ignoreContextMenu||this._map.fire(new jl(w.type,this._map,w)),this._map.listens(\"contextmenu\")&&w.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class du{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 ku{constructor(w,B){this._map=w,this._tr=new du(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)le.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 Wf(ue,w){if(ue.length!==w.length)throw new Error(`The number of touches and points are not equal - touches ${ue.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 le=new a.P(0,0);for(let qe of ee)le._add(qe);return le.div(ee.length)}(B),this.touches=Wf(Q,B)))}touchmove(w,B,Q){if(this.aborted||!this.centroid)return;let ee=Wf(Q,B);for(let le in this.touches){let qe=ee[le];(!qe||qe.dist(this.touches[le])>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 wf{constructor(w){this.singleTap=new Us(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 le=w.timeStamp-this.lastTime<500,qe=!this.lastTap||this.lastTap.dist(ee)<30;if(le&&qe||this.reset(),this.count++,this.lastTime=w.timeStamp,this.lastTap=ee,this.count===this.numTaps)return this.reset(),ee}}}class zc{constructor(w){this._tr=new du(w),this._zoomIn=new wf({numTouches:1,numTaps:2}),this._zoomOut=new wf({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),le=this._zoomOut.touchend(w,B,Q),qe=this._tr;return ee?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom+1,around:qe.unproject(ee)},{originalEvent:w})}):le?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:Xe=>Xe.easeTo({duration:300,zoom:qe.zoom-1,around:qe.unproject(le)},{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 Wu{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){ue.mousedown=ue.dragStart,ue.mousemoveWindow=ue.dragMove,ue.mouseup=ue.dragEnd,ue.contextmenu=w=>{w.preventDefault()}},Wl=({enable:ue,clickTolerance:w,bearingDegreesPerPixelMoved:B=.8})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({bearingDelta:(le.x-ee.x)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})},ah=({enable:ue,clickTolerance:w,pitchDegreesPerPixelMoved:B=-.5})=>{let Q=new Xu({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new Wu({clickTolerance:w,move:(ee,le)=>({pitchDelta:(le.y-ee.y)*B}),moveStateManager:Q,enable:ue,assignEvents:Xf})};class Zu{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=Wf(Q,B),le=new a.P(0,0),qe=new a.P(0,0),Xe=0;for(let Tt in ee){let Yt=ee[Tt],Kt=this._touches[Tt];Kt&&(le._add(Yt),qe._add(Yt.sub(Kt)),Xe++,ee[Tt]=Yt)}if(this._touches=ee,this._shouldBePrevented(Xe)||!qe.mag())return;let ot=qe.div(Xe);return this._sum._add(ot),this._sum.mag()Math.abs(ue.x)}class Bc extends Oc{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,fc(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]),le=w[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(ee,le,Q.timeStamp),this._valid?(this._lastPoints=w,this._active=!0,{pitchDelta:(ee.y+le.y)/2*-.5}):void 0}gestureBeginsVertically(w,B,Q){if(this._valid!==void 0)return this._valid;let ee=w.mag()>=2,le=B.mag()>=2;if(!ee&&!le)return;if(!ee||!le)return this._firstMove===void 0&&(this._firstMove=Q),Q-this._firstMove<100&&void 0;let qe=w.y>0==B.y>0;return fc(w)&&fc(B)&&qe}}let At={panStep:100,bearingStep:15,pitchStep:10};class Wt{constructor(w){this._tr=new du(w);let B=At;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,le=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(),le=-1);break;case 39:w.shiftKey?Q=1:(w.preventDefault(),le=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:Xe=>{let ot=this._tr;Xe.easeTo({duration:300,easeId:\"keyboardHandler\",easing:Cr,zoom:B?Math.round(ot.zoom)+B*(w.shiftKey?2:1):ot.zoom,bearing:ot.bearing+Q*this._bearingStep,pitch:ot.pitch+ee*this._pitchStep,offset:[-le*this._panStep,-qe*this._panStep],center:ot.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 Cr(ue){return ue*(2-ue)}let Ar=4.000244140625;class Kr{constructor(w,B){this._onTimeout=Q=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(Q)},this._map=w,this._tr=new du(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%Ar==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 ot=this._type===\"wheel\"&&Math.abs(this._delta)>Ar?this._wheelZoomRate:this._defaultZoomRate,Tt=2/(1+Math.exp(-Math.abs(this._delta*ot)));this._delta<0&&Tt!==0&&(Tt=1/Tt);let Yt=typeof this._targetZoom==\"number\"?w.zoomScale(this._targetZoom):w.scale;this._targetZoom=Math.min(w.maxZoom,Math.max(w.minZoom,w.scaleZoom(Yt*Tt))),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,le,qe=!1,Xe=u.now()-this._lastWheelEventTime;if(this._type===\"wheel\"&&Q&&ee&&Xe){let ot=Math.min(Xe/200,1),Tt=ee(ot);le=a.y.number(Q,B,Tt),ot<1?this._frameId||(this._frameId=!0):qe=!0}else le=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:le-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,le=Q.easing(ee+.01)-Q.easing(ee),qe=.27/Math.sqrt(le*le+1e-4)*.01,Xe=Math.sqrt(.0729-qe*qe);B=a.b8(qe,Xe,.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 ki{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 du(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 dn{constructor(){this._tap=new wf({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],le=w.timeStamp-this._tapTime<500,qe=this._tapPoint.dist(ee)<30;le&&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],le=ee.y-this._swipePoint.y;return this._swipePoint=ee,w.preventDefault(),this._active=!0,{zoomDelta:le/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 wn{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 Nn{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 Yi{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 le=document.createElement(\"div\");le.className=\"maplibregl-mobile-message\",le.textContent=Q,this._container.appendChild(le),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 on=ue=>ue.zoom||ue.drag||ue.pitch||ue.rotate;class Fi extends a.k{}function $n(ue){return ue.panDelta&&ue.panDelta.mag()||ue.zoomDelta||ue.bearingDelta||ue.pitchDelta}class Ca{constructor(w,B){this.handleWindowEvent=ee=>{this.handleEvent(ee,`${ee.type}Window`)},this.handleEvent=(ee,le)=>{if(ee.type===\"blur\")return void this.stop(!0);this._updatingCamera=!0;let qe=ee.type===\"renderFrame\"?void 0:ee,Xe={needsRenderFrame:!1},ot={},Tt={},Yt=ee.touches,Kt=Yt?this._getMapTouches(Yt):void 0,xr=Kt?c.touchPos(this._map.getCanvas(),Kt):c.mousePos(this._map.getCanvas(),ee);for(let{handlerName:be,handler:De,allowed:Be}of this._handlers){if(!De.isEnabled())continue;let et;this._blockedByActive(Tt,Be,be)?De.reset():De[le||ee.type]&&(et=De[le||ee.type](ee,xr,Kt),this.mergeHandlerResult(Xe,ot,et,be,qe),et&&et.needsRenderFrame&&this._triggerRenderFrame()),(et||De.isActive())&&(Tt[be]=De)}let Ir={};for(let be in this._previousActiveHandlers)Tt[be]||(Ir[be]=qe);this._previousActiveHandlers=Tt,(Object.keys(Ir).length||$n(Xe))&&(this._changes.push([Xe,ot,Ir]),this._triggerRenderFrame()),(Object.keys(Tt).length||$n(Xe))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:ve}=Xe;ve&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],ve(this._map))},this._map=w,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Pf(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,le,qe]of this._listeners)c.addEventListener(ee,le,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 If(B,w));let ee=B.boxZoom=new ku(B,w);this._add(\"boxZoom\",ee),w.interactive&&w.boxZoom&&ee.enable();let le=B.cooperativeGestures=new Qi(B,w.cooperativeGestures);this._add(\"cooperativeGestures\",le),w.cooperativeGestures&&le.enable();let qe=new zc(B),Xe=new Xi(B);B.doubleClickZoom=new ki(Xe,qe),this._add(\"tapZoom\",qe),this._add(\"clickZoom\",Xe),w.interactive&&w.doubleClickZoom&&B.doubleClickZoom.enable();let ot=new dn;this._add(\"tapDragZoom\",ot);let Tt=B.touchPitch=new Bc(B);this._add(\"touchPitch\",Tt),w.interactive&&w.touchPitch&&B.touchPitch.enable(w.touchPitch);let Yt=Wl(w),Kt=ah(w);B.dragRotate=new Nn(w,Yt,Kt),this._add(\"mouseRotate\",Yt,[\"mousePitch\"]),this._add(\"mousePitch\",Kt,[\"mouseRotate\"]),w.interactive&&w.dragRotate&&B.dragRotate.enable();let xr=(({enable:et,clickTolerance:We})=>{let it=new Xu({checkCorrectEvent:Ft=>c.mouseButton(Ft)===0&&!Ft.ctrlKey});return new Wu({clickTolerance:We,move:(Ft,Ht)=>({around:Ht,panDelta:Ht.sub(Ft)}),activateOnStart:!0,moveStateManager:it,enable:et,assignEvents:Xf})})(w),Ir=new Zu(w,B);B.dragPan=new wn(Q,xr,Ir),this._add(\"mousePan\",xr),this._add(\"touchPan\",Ir,[\"touchZoom\",\"touchRotate\"]),w.interactive&&w.dragPan&&B.dragPan.enable(w.dragPan);let ve=new cf,be=new vu;B.touchZoomRotate=new Yi(Q,be,ve,ot),this._add(\"touchRotate\",ve,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",be,[\"touchPan\",\"touchRotate\"]),w.interactive&&w.touchZoomRotate&&B.touchZoomRotate.enable(w.touchZoomRotate);let De=B.scrollZoom=new Kr(B,()=>this._triggerRenderFrame());this._add(\"scrollZoom\",De,[\"mousePan\"]),w.interactive&&w.scrollZoom&&B.scrollZoom.enable(w.scrollZoom);let Be=B.keyboard=new Wt(B);this._add(\"keyboard\",Be),w.interactive&&w.keyboard&&B.keyboard.enable(),this._add(\"blockableMapEvent\",new Cs(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!!on(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,le){if(!Q)return;a.e(w,Q);let qe={handlerName:ee,originalEvent:Q.originalEvent||le};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,le,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,le),a.e(Q,qe);this._updateMapTransform(w,B,Q),this._changes=[]}_updateMapTransform(w,B,Q){let ee=this._map,le=ee._getTransformForUpdate(),qe=ee.terrain;if(!($n(w)||qe&&this._terrainMovement))return this._fireEvents(B,Q,!0);let{panDelta:Xe,zoomDelta:ot,bearingDelta:Tt,pitchDelta:Yt,around:Kt,pinchAround:xr}=w;xr!==void 0&&(Kt=xr),ee._stop(!0),Kt=Kt||ee.transform.centerPoint;let Ir=le.pointLocation(Xe?Kt.sub(Xe):Kt);Tt&&(le.bearing+=Tt),Yt&&(le.pitch+=Yt),ot&&(le.zoom+=ot),qe?this._terrainMovement||!B.drag&&!B.zoom?B.drag&&this._terrainMovement?le.center=le.pointLocation(le.centerPoint.sub(Xe)):le.setLocationAtPoint(Ir,Kt):(this._terrainMovement=!0,this._map._elevationFreeze=!0,le.setLocationAtPoint(Ir,Kt)):le.setLocationAtPoint(Ir,Kt),ee._applyUpdatedTransform(le),this._map._update(),w.noInertia||this._inertia.record(w),this._fireEvents(B,Q,!0)}_fireEvents(w,B,Q){let ee=on(this._eventsInProgress),le=on(w),qe={};for(let Kt in w){let{originalEvent:xr}=w[Kt];this._eventsInProgress[Kt]||(qe[`${Kt}start`]=xr),this._eventsInProgress[Kt]=w[Kt]}!ee&&le&&this._fireEvent(\"movestart\",le.originalEvent);for(let Kt in qe)this._fireEvent(Kt,qe[Kt]);le&&this._fireEvent(\"move\",le.originalEvent);for(let Kt in w){let{originalEvent:xr}=w[Kt];this._fireEvent(Kt,xr)}let Xe={},ot;for(let Kt in this._eventsInProgress){let{handlerName:xr,originalEvent:Ir}=this._eventsInProgress[Kt];this._handlersById[xr].isActive()||(delete this._eventsInProgress[Kt],ot=B[xr]||Ir,Xe[`${Kt}end`]=ot)}for(let Kt in Xe)this._fireEvent(Kt,Xe[Kt]);let Tt=on(this._eventsInProgress),Yt=(ee||le)&&!Tt;if(Yt&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;let Kt=this._map._getTransformForUpdate();Kt.recalculateZoom(this._map.terrain),this._map._applyUpdatedTransform(Kt)}if(Q&&Yt){this._updatingCamera=!0;let Kt=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),xr=Ir=>Ir!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Fi(\"renderFrame\",{timeStamp:w})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Ra 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(le,De,tr)),this._rotating&&(ee.bearing=a.y.number(qe,Tt,tr)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,tr)),this._padding&&(ee.interpolatePadding(ot,Kt,tr),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(tr),it)ee.setLocationAtPoint(it,Ft);else{let dr=ee.zoomScale(ee.zoom-le),Sr=De>le?Math.min(2,We):Math.max(.5,We),Or=Math.pow(Sr,1-tr),Wr=ee.unproject(Be.add(et.mult(tr*Or)).mult(dr));ee.setLocationAtPoint(ee.renderWorldCopies?Wr.wrap():Wr,Ir)}this._applyUpdatedTransform(ee),this._fireMoveEvents(B)},tr=>{this.terrain&&w.freezeElevation&&this._finalizeElevation(),this._afterEase(B,tr)},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 le=Q.clone(),{center:qe,zoom:Xe,pitch:ot,bearing:Tt,elevation:Yt}=ee(le);qe&&(le.center=qe),Xe!==void 0&&(le.zoom=Xe),ot!==void 0&&(le.pitch=ot),Tt!==void 0&&(le.bearing=Tt),Yt!==void 0&&(le.elevation=Yt),Q.apply(le)}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,le=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)),le&&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 Cn=a.M(w,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(Cn,B)}this.stop(),w=a.e({offset:[0,0],speed:1.2,curve:1.42,easing:a.b9},w);let ee=this._getTransformForUpdate(),le=ee.zoom,qe=ee.bearing,Xe=ee.pitch,ot=ee.padding,Tt=\"bearing\"in w?this._normalizeBearing(w.bearing,qe):qe,Yt=\"pitch\"in w?+w.pitch:Xe,Kt=\"padding\"in w?w.padding:ee.padding,xr=a.P.convert(w.offset),Ir=ee.centerPoint.add(xr),ve=ee.pointLocation(Ir),{center:be,zoom:De}=ee.getConstrained(a.N.convert(w.center||ve),(Q=w.zoom)!==null&&Q!==void 0?Q:le);this._normalizeCenter(be,ee);let Be=ee.zoomScale(De-le),et=ee.project(ve),We=ee.project(be).sub(et),it=w.curve,Ft=Math.max(ee.width,ee.height),Ht=Ft/Be,tr=We.mag();if(\"minZoom\"in w){let Cn=a.ac(Math.min(w.minZoom,le,De),ee.minZoom,ee.maxZoom),Kn=Ft/ee.zoomScale(Cn-le);it=Math.sqrt(Kn/tr*2)}let dr=it*it;function Sr(Cn){let Kn=(Ht*Ht-Ft*Ft+(Cn?-1:1)*dr*dr*tr*tr)/(2*(Cn?Ht:Ft)*dr*tr);return Math.log(Math.sqrt(Kn*Kn+1)-Kn)}function Or(Cn){return(Math.exp(Cn)-Math.exp(-Cn))/2}function Wr(Cn){return(Math.exp(Cn)+Math.exp(-Cn))/2}let ni=Sr(!1),Pi=function(Cn){return Wr(ni)/Wr(ni+it*Cn)},cn=function(Cn){return Ft*((Wr(ni)*(Or(Kn=ni+it*Cn)/Wr(Kn))-Or(ni))/dr)/tr;var Kn},ln=(Sr(!0)-ni)/it;if(Math.abs(tr)<1e-6||!isFinite(ln)){if(Math.abs(Ft-Ht)<1e-6)return this.easeTo(w,B);let Cn=Ht0,Pi=Kn=>Math.exp(Cn*it*Kn)}return w.duration=\"duration\"in w?+w.duration:1e3*ln/(\"screenSpeed\"in w?+w.screenSpeed/it:+w.speed),w.maxDuration&&w.duration>w.maxDuration&&(w.duration=0),this._zooming=!0,this._rotating=qe!==Tt,this._pitching=Yt!==Xe,this._padding=!ee.isPaddingEqual(Kt),this._prepareEase(B,!1),this.terrain&&this._prepareElevation(be),this._ease(Cn=>{let Kn=Cn*ln,Ta=1/Pi(Kn);ee.zoom=Cn===1?De:le+ee.scaleZoom(Ta),this._rotating&&(ee.bearing=a.y.number(qe,Tt,Cn)),this._pitching&&(ee.pitch=a.y.number(Xe,Yt,Cn)),this._padding&&(ee.interpolatePadding(ot,Kt,Cn),Ir=ee.centerPoint.add(xr)),this.terrain&&!w.freezeElevation&&this._updateElevation(Cn);let fa=Cn===1?be:ee.unproject(et.add(We.mult(cn(Kn))).mult(Ta));ee.setLocationAtPoint(ee.renderWorldCopies?fa.wrap():fa,Ir),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 La={compact:!0,customAttribution:'
MapLibre'};class Na{constructor(w=La){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 le=B[ee];if(le.used||le.usedForTerrain){let qe=le.getSource();qe.attribution&&w.indexOf(qe.attribution)<0&&w.push(qe.attribution)}}w=w.filter(ee=>String(ee).trim()),w.sort((ee,le)=>ee.length-le.length),w=w.filter((ee,le)=>{for(let qe=le+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 Yn{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 Dn{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 Ka=a.Y([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class bo 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 Vt(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 le=w.clone();le.posMatrix=new Float64Array(16),a.aP(le.posMatrix,0,a.X,0,a.X,0,1),B[Q]=le}else if(ee.canonical.isChildOf(w.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=ee.canonical.z-w.canonical.z,Xe=ee.canonical.x-(ee.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,Tt,0,Tt,0,1),a.J(le.posMatrix,le.posMatrix,[-Xe*Tt,-ot*Tt,0]),B[Q]=le}else if(w.canonical.isChildOf(ee.canonical)){let le=w.clone();le.posMatrix=new Float64Array(16);let qe=w.canonical.z-ee.canonical.z,Xe=w.canonical.x-(w.canonical.x>>qe<>qe<>qe;a.aP(le.posMatrix,0,a.X,0,a.X,0,1),a.J(le.posMatrix,le.posMatrix,[Xe*Tt,ot*Tt,0]),a.K(le.posMatrix,le.posMatrix,[1/2**qe,1/2**qe,0]),B[Q]=le}}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&&(!le||!le.dem);)le=this.sourceCache.getTileByID(w.scaledTo(ee--).key);return le}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 bo(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 le;if(!(B>=0&&B=0&&Qw.canonical.z&&(w.canonical.z>=ee?le=w.canonical.z-ee:a.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));let qe=w.canonical.x-(w.canonical.x>>le<>le<>8<<4|le>>8,B[qe+3]=0;let Q=new a.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(B.buffer)),ee=new g(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,le=Math.round(w.x*this.painter.pixelRatio/devicePixelRatio),qe=Math.round(w.y*this.painter.pixelRatio/devicePixelRatio),Xe=Math.round(this.painter.height/devicePixelRatio);Q.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),ee.readPixels(le,Xe-qe-1,1,1,ee.RGBA,ee.UNSIGNED_BYTE,B),Q.bindFramebuffer.set(null);let ot=B[0]+(B[2]>>4<<8),Tt=B[1]+((15&B[2])<<8),Yt=this.coordsIndex[255-B[3]],Kt=Yt&&this.sourceCache.getTileByID(Yt);if(!Kt)return null;let xr=this._coordsTextureSize,Ir=(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 as={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ws{constructor(w,B){this.painter=w,this.terrain=B,this.pool=new Ss(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 le of ee){let qe=this.terrain.sourceCache.getTerrainCoords(le);for(let Xe in qe)this._coordsDescendingInv[Q][Xe]||(this._coordsDescendingInv[Q][Xe]=[]),this._coordsDescendingInv[Q][Xe].push(qe[Xe])}}this._coordsDescendingInvStr={};for(let Q of w._order){let ee=w._layers[Q],le=ee.source;if(as[ee.type]&&!this._coordsDescendingInvStr[le]){this._coordsDescendingInvStr[le]={};for(let qe in this._coordsDescendingInv[le])this._coordsDescendingInvStr[le][qe]=this._coordsDescendingInv[le][qe].map(Xe=>Xe.key).sort().join()}}for(let Q of this._renderableTiles)for(let ee in this._coordsDescendingInvStr){let le=this._coordsDescendingInvStr[ee][Q.tileID.key];le&&le!==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(as[B]&&(this._prevType&&as[this._prevType]||this._stacks.push([]),this._prevType=B,this._stacks[this._stacks.length-1].push(w.id),!ee))return!0;if(as[this._prevType]||as[B]&&ee){this._prevType=B;let le=this._stacks.length-1,qe=this._stacks[le]||[];for(let Xe of this._renderableTiles){if(this.pool.isFull()&&(js(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(Xe),Xe.rtt[le]){let Tt=this.pool.getObjectForId(Xe.rtt[le].id);if(Tt.stamp===Xe.rtt[le].stamp){this.pool.useObject(Tt);continue}}let ot=this.pool.getOrCreateFreeObject();this.pool.useObject(ot),this.pool.stampObject(ot),Xe.rtt[le]={id:ot.id,stamp:ot.stamp},Q.context.bindFramebuffer.set(ot.fbo.framebuffer),Q.context.clear({color:a.aM.transparent,stencil:0}),Q.currentStencilSource=void 0;for(let Tt=0;Tt{ue.touchstart=ue.dragStart,ue.touchmoveWindow=ue.dragMove,ue.touchend=ue.dragEnd},va={showCompass:!0,showZoom:!0,visualizePitch:!1};class no{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(),le=w.dragRotate._mousePitch.getClickTolerance();this.element=B,this.mouseRotate=Wl({clickTolerance:ee,enable:!0}),this.touchRotate=(({enable:qe,clickTolerance:Xe,bearingDegreesPerPixelMoved:ot=.8})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({bearingDelta:(Kt.x-Yt.x)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:ee,enable:!0}),this.map=w,Q&&(this.mousePitch=ah({clickTolerance:le,enable:!0}),this.touchPitch=(({enable:qe,clickTolerance:Xe,pitchDegreesPerPixelMoved:ot=-.5})=>{let Tt=new uf;return new Wu({clickTolerance:Xe,move:(Yt,Kt)=>({pitchDelta:(Kt.y-Yt.y)*ot}),moveStateManager:Tt,enable:qe,assignEvents:Ls})})({clickTolerance:le,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:le}=this.mousePitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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:le}=this.touchPitch.dragMove(w,B)||{};le&&Q.setPitch(Q.getPitch()+le)}}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 ys;function rs(ue,w,B){let Q=new a.N(ue.lng,ue.lat);if(ue=new a.N(ue.lng,ue.lat),w){let ee=new a.N(ue.lng-360,ue.lat),le=new a.N(ue.lng+360,ue.lat),qe=B.locationPoint(ue).distSqr(w);B.locationPoint(ee).distSqr(w)180;){let ee=B.locationPoint(ue);if(ee.x>=0&&ee.y>=0&&ee.x<=B.width&&ee.y<=B.height)break;ue.lng>B.center.lng?ue.lng-=360:ue.lng+=360}return ue.lng!==Q.lng&&B.locationPoint(ue).y>B.height/2-B.getHorizon()?ue:Q}let $l={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 Cu(ue,w,B){let Q=ue.classList;for(let ee in $l)Q.remove(`maplibregl-${B}-anchor-${ee}`);Q.add(`maplibregl-${B}-anchor-${w}`)}class Yu 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?rs(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 le=\"\";this._rotationAlignment===\"viewport\"||this._rotationAlignment===\"auto\"?le=`rotateZ(${this._rotation}deg)`:this._rotationAlignment===\"map\"&&(le=`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,`${$l[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${qe} ${le}`),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 le=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");le.setAttributeNS(null,\"stroke\",\"none\"),le.setAttributeNS(null,\"stroke-width\",\"1\"),le.setAttributeNS(null,\"fill\",\"none\"),le.setAttributeNS(null,\"fill-rule\",\"evenodd\");let qe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");qe.setAttributeNS(null,\"fill-rule\",\"nonzero\");let Xe=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Xe.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),Xe.setAttributeNS(null,\"fill\",\"#000000\");let ot=[{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 Be of ot){let et=c.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");et.setAttributeNS(null,\"opacity\",\"0.04\"),et.setAttributeNS(null,\"cx\",\"10.5\"),et.setAttributeNS(null,\"cy\",\"5.80029008\"),et.setAttributeNS(null,\"rx\",Be.rx),et.setAttributeNS(null,\"ry\",Be.ry),Xe.appendChild(et)}let Tt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Tt.setAttributeNS(null,\"fill\",this._color);let Yt=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");Yt.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\"),Tt.appendChild(Yt);let Kt=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Kt.setAttributeNS(null,\"opacity\",\"0.25\"),Kt.setAttributeNS(null,\"fill\",\"#000000\");let xr=c.createNS(\"http://www.w3.org/2000/svg\",\"path\");xr.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\"),Kt.appendChild(xr);let Ir=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");Ir.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),Ir.setAttributeNS(null,\"fill\",\"#FFFFFF\");let ve=c.createNS(\"http://www.w3.org/2000/svg\",\"g\");ve.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 De=c.createNS(\"http://www.w3.org/2000/svg\",\"circle\");De.setAttributeNS(null,\"fill\",\"#FFFFFF\"),De.setAttributeNS(null,\"cx\",\"5.5\"),De.setAttributeNS(null,\"cy\",\"5.5\"),De.setAttributeNS(null,\"r\",\"5.4999962\"),ve.appendChild(be),ve.appendChild(De),qe.appendChild(Xe),qe.appendChild(Tt),qe.appendChild(Kt),qe.appendChild(Ir),qe.appendChild(ve),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()}),Cu(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,le=ee.terrain.depthAtPoint(this._pos),qe=ee.terrain.getElevationForLngLatZoom(this._lngLat,ee.transform.tileZoom);if(ee.transform.lngLatToCameraDepth(this._lngLat,qe)-le<.006)return void(this._element.style.opacity=this._opacity);let Xe=-this._offset.y/ee.transform._pixelPerMeter,ot=Math.sin(ee.getPitch()*Math.PI/180)*Xe,Tt=ee.terrain.depthAtPoint(new a.P(this._pos.x,this._pos.y-this._offset.y)),Yt=ee.transform.lngLatToCameraDepth(this._lngLat,qe+ot)-Tt>.006;!((Q=this._popup)===null||Q===void 0)&&Q.isOpen()&&Yt&&this._popup.remove(),this._element.style.opacity=Yt?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 Nc={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},pu=0,Uc=!1,xu={maxWidth:100,unit:\"metric\"};function Ac(ue,w,B){let Q=B&&B.maxWidth||100,ee=ue._container.clientHeight/2,le=ue.unproject([0,ee]),qe=ue.unproject([Q,ee]),Xe=le.distanceTo(qe);if(B&&B.unit===\"imperial\"){let ot=3.2808*Xe;ot>5280?Ua(w,Q,ot/5280,ue._getUIString(\"ScaleControl.Miles\")):Ua(w,Q,ot,ue._getUIString(\"ScaleControl.Feet\"))}else B&&B.unit===\"nautical\"?Ua(w,Q,Xe/1852,ue._getUIString(\"ScaleControl.NauticalMiles\")):Xe>=1e3?Ua(w,Q,Xe/1e3,ue._getUIString(\"ScaleControl.Kilometers\")):Ua(w,Q,Xe,ue._getUIString(\"ScaleControl.Meters\"))}function Ua(ue,w,B,Q){let ee=function(le){let qe=Math.pow(10,`${Math.floor(le)}`.length-1),Xe=le/qe;return Xe=Xe>=10?10:Xe>=5?5:Xe>=3?3:Xe>=2?2:Xe>=1?1:function(ot){let Tt=Math.pow(10,Math.ceil(-Math.log(ot)/Math.LN10));return Math.round(ot*Tt)/Tt}(Xe),qe*Xe}(B);ue.style.width=w*(ee/B)+\"px\",ue.innerHTML=`${ee} ${Q}`}let oo={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\",subpixelPositioning:!1},Vc=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function hc(ue){if(ue){if(typeof ue==\"number\"){let w=Math.round(Math.abs(ue)/Math.SQRT2);return{center:new a.P(0,0),top:new a.P(0,ue),\"top-left\":new a.P(w,w),\"top-right\":new a.P(-w,w),bottom:new a.P(0,-ue),\"bottom-left\":new a.P(w,-w),\"bottom-right\":new a.P(-w,-w),left:new a.P(ue,0),right:new a.P(-ue,0)}}if(ue instanceof a.P||Array.isArray(ue)){let w=a.P.convert(ue);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(ue.center||[0,0]),top:a.P.convert(ue.top||[0,0]),\"top-left\":a.P.convert(ue[\"top-left\"]||[0,0]),\"top-right\":a.P.convert(ue[\"top-right\"]||[0,0]),bottom:a.P.convert(ue.bottom||[0,0]),\"bottom-left\":a.P.convert(ue[\"bottom-left\"]||[0,0]),\"bottom-right\":a.P.convert(ue[\"bottom-right\"]||[0,0]),left:a.P.convert(ue.left||[0,0]),right:a.P.convert(ue.right||[0,0])}}return hc(new a.P(0,0))}let Ku=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=Na,i.BoxZoomHandler=ku,i.CanvasSource=Jt,i.CooperativeGesturesHandler=Qi,i.DoubleClickZoomHandler=ki,i.DragPanHandler=wn,i.DragRotateHandler=Nn,i.EdgeInsets=hu,i.FullscreenControl=class extends a.E{constructor(ue={}){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,ue&&ue.container&&(ue.container instanceof HTMLElement?this._container=ue.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(ue){return this._map=ue,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 ue=this._fullscreenButton=c.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);c.create(\"span\",\"maplibregl-ctrl-icon\",ue).setAttribute(\"aria-hidden\",\"true\"),ue.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let ue=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",ue),this._fullscreenButton.title=ue}_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=st,i.GeolocateControl=class extends a.E{constructor(ue){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(),le=a.e({bearing:ee},this.options.fitBoundsOptions),qe=ce.fromLngLat(B,Q);this._map.fitBounds(qe,le,{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&&Uc)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 Yu({element:this._dotElement}),this._circleElement=c.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Yu({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({},Nc,ue)}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),function(){return a._(this,arguments,void 0,function*(w=!1){if(ys!==void 0&&!w)return ys;if(window.navigator.permissions===void 0)return ys=!!window.navigator.geolocation,ys;try{ys=(yield window.navigator.permissions.query({name:\"geolocation\"})).state!==\"denied\"}catch(B){ys=!!window.navigator.geolocation}return ys})}().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,pu=0,Uc=!1}_isOutOfMapMaxBounds(ue){let w=this._map.getMaxBounds(),B=ue.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 ue=this._map.getBounds(),w=ue.getSouthEast(),B=ue.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\":pu--,Uc=!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 ue;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),pu++,pu>1?(ue={maximumAge:6e5,timeout:0},Uc=!0):(ue=this.options.positionOptions,Uc=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,ue)}}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=Ah,i.ImageSource=Gt,i.KeyboardHandler=Wt,i.LngLatBounds=ce,i.LogoControl=Yn,i.Map=class extends Ra{constructor(ue){a.bf.mark(a.bg.create);let w=Object.assign(Object.assign({},Ws),ue);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 nl(w.minZoom,w.maxZoom,w.minPitch,w.maxPitch,w.renderWorldCopies),{bearingSnap:w.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new Dn,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({},Ho),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=p.addThrottleControl(()=>this.isMoving()),this._requestManager=new k(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=nh(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 Ca(this,w),this._hash=w.hash&&new Ah(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 Na(typeof w.attributionControl==\"boolean\"?void 0:w.attributionControl)),w.maplibreLogo&&this.addControl(new Yn,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(ue,w){if(w===void 0&&(w=ue.getDefaultPosition?ue.getDefaultPosition():\"top-right\"),!ue||!ue.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=ue.onAdd(this);this._controls.push(ue);let Q=this._controlPositions[w];return w.indexOf(\"bottom\")!==-1?Q.insertBefore(B,Q.firstChild):Q.appendChild(B),this}removeControl(ue){if(!ue||!ue.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(ue);return w>-1&&this._controls.splice(w,1),ue.onRemove(this),this}hasControl(ue){return this._controls.indexOf(ue)>-1}calculateCameraOptionsFromTo(ue,w,B,Q){return Q==null&&this.terrain&&(Q=this.terrain.getElevationForLngLatZoom(B,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(ue,w,B,Q)}resize(ue){var w;let B=this._containerDimensions(),Q=B[0],ee=B[1],le=this._getClampedPixelRatio(Q,ee);if(this._resizeCanvas(Q,ee,le),this.painter.resize(Q,ee,le),this.painter.overLimit()){let Xe=this.painter.context.gl;this._maxCanvasSize=[Xe.drawingBufferWidth,Xe.drawingBufferHeight];let ot=this._getClampedPixelRatio(Q,ee);this._resizeCanvas(Q,ee,ot),this.painter.resize(Q,ee,ot)}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\",ue)).fire(new a.k(\"move\",ue))),this.fire(new a.k(\"resize\",ue)),qe&&this.fire(new a.k(\"moveend\",ue)),this}_getClampedPixelRatio(ue,w){let{0:B,1:Q}=this._maxCanvasSize,ee=this.getPixelRatio(),le=ue*ee,qe=w*ee;return Math.min(le>B?B/le:1,qe>Q?Q/qe:1)*ee}getPixelRatio(){var ue;return(ue=this._overridePixelRatio)!==null&&ue!==void 0?ue:devicePixelRatio}setPixelRatio(ue){this._overridePixelRatio=ue,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(ue){return this.transform.setMaxBounds(ce.convert(ue)),this._update()}setMinZoom(ue){if((ue=ue==null?-2:ue)>=-2&&ue<=this.transform.maxZoom)return this.transform.minZoom=ue,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=ue,this._update(),this.getZoom()>ue&&this.setZoom(ue),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(ue){if((ue=ue==null?0:ue)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(ue>=0&&ue<=this.transform.maxPitch)return this.transform.minPitch=ue,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(ue>=this.transform.minPitch)return this.transform.maxPitch=ue,this._update(),this.getPitch()>ue&&this.setPitch(ue),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(ue){return this.transform.renderWorldCopies=ue,this._update()}project(ue){return this.transform.locationPoint(a.N.convert(ue),this.style&&this.terrain)}unproject(ue){return this.transform.pointLocation(a.P.convert(ue),this.terrain)}isMoving(){var ue;return this._moving||((ue=this.handlers)===null||ue===void 0?void 0:ue.isMoving())}isZooming(){var ue;return this._zooming||((ue=this.handlers)===null||ue===void 0?void 0:ue.isZooming())}isRotating(){var ue;return this._rotating||((ue=this.handlers)===null||ue===void 0?void 0:ue.isRotating())}_createDelegatedListener(ue,w,B){if(ue===\"mouseenter\"||ue===\"mouseover\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:le=>{let qe=w.filter(ot=>this.getLayer(ot)),Xe=qe.length!==0?this.queryRenderedFeatures(le.point,{layers:qe}):[];Xe.length?Q||(Q=!0,B.call(this,new jl(ue,this,le.originalEvent,{features:Xe}))):Q=!1},mouseout:()=>{Q=!1}}}}if(ue===\"mouseleave\"||ue===\"mouseout\"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:qe=>{let Xe=w.filter(ot=>this.getLayer(ot));(Xe.length!==0?this.queryRenderedFeatures(qe.point,{layers:Xe}):[]).length?Q=!0:Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))},mouseout:qe=>{Q&&(Q=!1,B.call(this,new jl(ue,this,qe.originalEvent)))}}}}{let Q=ee=>{let le=w.filter(Xe=>this.getLayer(Xe)),qe=le.length!==0?this.queryRenderedFeatures(ee.point,{layers:le}):[];qe.length&&(ee.features=qe,B.call(this,ee),delete ee.features)};return{layers:w,listener:B,delegates:{[ue]:Q}}}}_saveDelegatedListener(ue,w){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[ue]=this._delegatedListeners[ue]||[],this._delegatedListeners[ue].push(w)}_removeDelegatedListener(ue,w,B){if(!this._delegatedListeners||!this._delegatedListeners[ue])return;let Q=this._delegatedListeners[ue];for(let ee=0;eew.includes(qe))){for(let qe in le.delegates)this.off(qe,le.delegates[qe]);return void Q.splice(ee,1)}}}on(ue,w,B){if(B===void 0)return super.on(ue,w);let Q=this._createDelegatedListener(ue,typeof w==\"string\"?[w]:w,B);this._saveDelegatedListener(ue,Q);for(let ee in Q.delegates)this.on(ee,Q.delegates[ee]);return this}once(ue,w,B){if(B===void 0)return super.once(ue,w);let Q=typeof w==\"string\"?[w]:w,ee=this._createDelegatedListener(ue,Q,B);for(let le in ee.delegates){let qe=ee.delegates[le];ee.delegates[le]=(...Xe)=>{this._removeDelegatedListener(ue,Q,B),qe(...Xe)}}this._saveDelegatedListener(ue,ee);for(let le in ee.delegates)this.once(le,ee.delegates[le]);return this}off(ue,w,B){return B===void 0?super.off(ue,w):(this._removeDelegatedListener(ue,typeof w==\"string\"?[w]:w,B),this)}queryRenderedFeatures(ue,w){if(!this.style)return[];let B,Q=ue instanceof a.P||Array.isArray(ue),ee=Q?ue:[[0,0],[this.transform.width,this.transform.height]];if(w=w||(Q?{}:ue)||{},ee instanceof a.P||typeof ee[0]==\"number\")B=[a.P.convert(ee)];else{let le=a.P.convert(ee[0]),qe=a.P.convert(ee[1]);B=[le,new a.P(qe.x,le.y),qe,new a.P(le.x,qe.y),le]}return this.style.queryRenderedFeatures(B,w,this.transform)}querySourceFeatures(ue,w){return this.style.querySourceFeatures(ue,w)}setStyle(ue,w){return(w=a.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},w)).diff!==!1&&w.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&ue?(this._diffStyle(ue,w),this):(this._localIdeographFontFamily=w.localIdeographFontFamily,this._updateStyle(ue,w))}setTransformRequest(ue){return this._requestManager.setTransformRequest(ue),this}_getUIString(ue){let w=this._locale[ue];if(w==null)throw new Error(`Missing UI string '${ue}'`);return w}_updateStyle(ue,w){if(w.transformStyle&&this.style&&!this.style._loaded)return void this.style.once(\"style.load\",()=>this._updateStyle(ue,w));let B=this.style&&w.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!ue)),ue?(this.style=new Ga(this,w||{}),this.style.setEventedParent(this,{style:this.style}),typeof ue==\"string\"?this.style.loadURL(ue,w,B):this.style.loadJSON(ue,w,B),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ga(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(ue,w){if(typeof ue==\"string\"){let B=this._requestManager.transformRequest(ue,\"Style\");a.h(B,new AbortController).then(Q=>{this._updateDiff(Q.data,w)}).catch(Q=>{Q&&this.fire(new a.j(Q))})}else typeof ue==\"object\"&&this._updateDiff(ue,w)}_updateDiff(ue,w){try{this.style.setState(ue,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(ue,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(ue,w){return this._lazyInitEmptyStyle(),this.style.addSource(ue,w),this._update(!0)}isSourceLoaded(ue){let w=this.style&&this.style.sourceCaches[ue];if(w!==void 0)return w.loaded();this.fire(new a.j(new Error(`There is no source with ID '${ue}'`)))}setTerrain(ue){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),ue){let w=this.style.sourceCaches[ue.source];if(!w)throw new Error(`cannot load terrain, because there exists no source with ID: ${ue.source}`);this.terrain===null&&w.reload();for(let B in this.style._layers){let Q=this.style._layers[B];Q.type===\"hillshade\"&&Q.source===ue.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,ue),this.painter.renderToTexture=new ws(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!==ue.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:ue})),this}getTerrain(){var ue,w;return(w=(ue=this.terrain)===null||ue===void 0?void 0:ue.options)!==null&&w!==void 0?w:null}areTilesLoaded(){let ue=this.style&&this.style.sourceCaches;for(let w in ue){let B=ue[w]._tiles;for(let Q in B){let ee=B[Q];if(ee.state!==\"loaded\"&&ee.state!==\"errored\")return!1}}return!0}removeSource(ue){return this.style.removeSource(ue),this._update(!0)}getSource(ue){return this.style.getSource(ue)}addImage(ue,w,B={}){let{pixelRatio:Q=1,sdf:ee=!1,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt}=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:Yt,height:Kt,data:xr}=w,Ir=w;return this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},new Uint8Array(xr)),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0,userImage:Ir}),Ir.onAdd&&Ir.onAdd(this,ue),this}}{let{width:Yt,height:Kt,data:xr}=u.getImageData(w);this.style.addImage(ue,{data:new a.R({width:Yt,height:Kt},xr),pixelRatio:Q,stretchX:le,stretchY:qe,content:Xe,textFitWidth:ot,textFitHeight:Tt,sdf:ee,version:0})}}updateImage(ue,w){let B=this.style.getImage(ue);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:le,data:qe}=Q;if(ee===void 0||le===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||le!==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 Xe=!(w instanceof HTMLImageElement||a.b(w));return B.data.replace(qe,Xe),this.style.updateImage(ue,B),this}getImage(ue){return this.style.getImage(ue)}hasImage(ue){return ue?!!this.style.getImage(ue):(this.fire(new a.j(new Error(\"Missing required image id\"))),!1)}removeImage(ue){this.style.removeImage(ue)}loadImage(ue){return p.getImage(this._requestManager.transformRequest(ue,\"Image\"),new AbortController)}listImages(){return this.style.listImages()}addLayer(ue,w){return this._lazyInitEmptyStyle(),this.style.addLayer(ue,w),this._update(!0)}moveLayer(ue,w){return this.style.moveLayer(ue,w),this._update(!0)}removeLayer(ue){return this.style.removeLayer(ue),this._update(!0)}getLayer(ue){return this.style.getLayer(ue)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(ue,w,B){return this.style.setLayerZoomRange(ue,w,B),this._update(!0)}setFilter(ue,w,B={}){return this.style.setFilter(ue,w,B),this._update(!0)}getFilter(ue){return this.style.getFilter(ue)}setPaintProperty(ue,w,B,Q={}){return this.style.setPaintProperty(ue,w,B,Q),this._update(!0)}getPaintProperty(ue,w){return this.style.getPaintProperty(ue,w)}setLayoutProperty(ue,w,B,Q={}){return this.style.setLayoutProperty(ue,w,B,Q),this._update(!0)}getLayoutProperty(ue,w){return this.style.getLayoutProperty(ue,w)}setGlyphs(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(ue,w),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(ue,w,B={}){return this._lazyInitEmptyStyle(),this.style.addSprite(ue,w,B,Q=>{Q||this._update(!0)}),this}removeSprite(ue){return this._lazyInitEmptyStyle(),this.style.removeSprite(ue),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setSprite(ue,w,B=>{B||this._update(!0)}),this}setLight(ue,w={}){return this._lazyInitEmptyStyle(),this.style.setLight(ue,w),this._update(!0)}getLight(){return this.style.getLight()}setSky(ue){return this._lazyInitEmptyStyle(),this.style.setSky(ue),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(ue,w){return this.style.setFeatureState(ue,w),this._update()}removeFeatureState(ue,w){return this.style.removeFeatureState(ue,w),this._update()}getFeatureState(ue){return this.style.getFeatureState(ue)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let ue=0,w=0;return this._container&&(ue=this._container.clientWidth||400,w=this._container.clientHeight||300),[ue,w]}_setupContainer(){let ue=this._container;ue.classList.add(\"maplibregl-map\");let w=this._canvasContainer=c.create(\"div\",\"maplibregl-canvas-container\",ue);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\",ue),le=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach(qe=>{le[qe]=c.create(\"div\",`maplibregl-ctrl-${qe} `,ee)}),this._container.addEventListener(\"scroll\",this._onMapScroll,!1)}_resizeCanvas(ue,w,B){this._canvas.width=Math.floor(B*ue),this._canvas.height=Math.floor(B*w),this._canvas.style.width=`${ue}px`,this._canvas.style.height=`${w}px`}_setupPainter(){let ue={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:ue},Q&&(w.statusMessage=Q.statusMessage,w.type=Q.type)},{once:!0});let B=this._canvas.getContext(\"webgl2\",ue)||this._canvas.getContext(\"webgl\",ue);if(!B){let Q=\"Failed to initialize WebGL\";throw w?(w.message=Q,new Error(JSON.stringify(w))):new Error(Q)}this.painter=new Dc(B,this.transform),f.testSupport(B)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(ue){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||ue,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(ue){return this._update(),this._renderTaskQueue.add(ue)}_cancelRenderFrame(ue){this._renderTaskQueue.remove(ue)}_render(ue){let w=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(ue),this._removed)return;let B=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let ee=this.transform.zoom,le=u.now();this.style.zoomHistory.update(ee,le);let qe=new a.z(ee,{now:le,fadeDuration:w,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),Xe=qe.crossFadingFactor();Xe===1&&Xe===this._crossFadingFactor||(B=!0,this._crossFadingFactor=Xe),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 ue;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),p.removeThrottleControl(this._imageQueueHandle),(ue=this._resizeObserver)===null||ue===void 0||ue.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(ue=>{a.bf.frame(ue),this._frameRequest=null,this._render(ue)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(ue){this._showTileBoundaries!==ue&&(this._showTileBoundaries=ue,this._update())}get showPadding(){return!!this._showPadding}set showPadding(ue){this._showPadding!==ue&&(this._showPadding=ue,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(ue){this._showCollisionBoxes!==ue&&(this._showCollisionBoxes=ue,ue?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(ue){this._showOverdrawInspector!==ue&&(this._showOverdrawInspector=ue,this._update())}get repaint(){return!!this._repaint}set repaint(ue){this._repaint!==ue&&(this._repaint=ue,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(ue){this._vertices=ue,this._update()}get version(){return ml}getCameraTargetElevation(){return this.transform.elevation}},i.MapMouseEvent=jl,i.MapTouchEvent=lf,i.MapWheelEvent=Hh,i.Marker=Yu,i.NavigationControl=class{constructor(ue){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({},va,ue),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(ue){return this._map=ue,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 no(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(ue,w){let B=c.create(\"button\",ue,this._container);return B.type=\"button\",B.addEventListener(\"click\",w),B}},i.Popup=class extends a.E{constructor(ue){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 Xe of this.options.className.split(\" \"))this._container.classList.add(Xe);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?rs(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,le=hc(this.options.offset);if(!ee){let Xe=this._container.offsetWidth,ot=this._container.offsetHeight,Tt;Tt=Q.y+le.bottom.ythis._map.transform.height-ot?[\"bottom\"]:[],Q.xthis._map.transform.width-Xe/2&&Tt.push(\"right\"),ee=Tt.length===0?\"bottom\":Tt.join(\"-\")}let qe=Q.add(le[ee]);this.options.subpixelPositioning||(qe=qe.round()),c.setTransform(this._container,`${$l[ee]} translate(${qe.x}px,${qe.y}px)`),Cu(this._container,ee,\"popup\")},this._onClose=()=>{this.remove()},this.options=a.e(Object.create(oo),ue)}addTo(ue){return this._map&&this.remove(),this._map=ue,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(ue){return this._lngLat=a.N.convert(ue),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(ue){return this.setDOMContent(document.createTextNode(ue))}setHTML(ue){let w=document.createDocumentFragment(),B=document.createElement(\"body\"),Q;for(B.innerHTML=ue;Q=B.firstChild,Q;)w.appendChild(Q);return this.setDOMContent(w)}getMaxWidth(){var ue;return(ue=this._container)===null||ue===void 0?void 0:ue.style.maxWidth}setMaxWidth(ue){return this.options.maxWidth=ue,this._update(),this}setDOMContent(ue){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(ue),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(ue){return this._container&&this._container.classList.add(ue),this}removeClassName(ue){return this._container&&this._container.classList.remove(ue),this}setOffset(ue){return this.options.offset=ue,this._update(),this}toggleClassName(ue){if(this._container)return this._container.classList.toggle(ue)}setSubpixelPositioning(ue){this.options.subpixelPositioning=ue}_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 ue=this._container.querySelector(Vc);ue&&ue.focus()}},i.RasterDEMTileSource=Zt,i.RasterTileSource=pt,i.ScaleControl=class{constructor(ue){this._onMove=()=>{Ac(this._map,this._container,this.options)},this.setUnit=w=>{this.options.unit=w,Ac(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},xu),ue)}getDefaultPosition(){return\"bottom-left\"}onAdd(ue){return this._map=ue,this._container=c.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",ue.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=Kr,i.Style=Ga,i.TerrainControl=class{constructor(ue){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=ue}onAdd(ue){return this._map=ue,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=Bc,i.TwoFingersTouchRotateHandler=cf,i.TwoFingersTouchZoomHandler=vu,i.TwoFingersTouchZoomRotateHandler=Yi,i.VectorTileSource=ut,i.VideoSource=Nt,i.addSourceType=(ue,w)=>a._(void 0,void 0,void 0,function*(){if(wr(ue))throw new Error(`A source type called \"${ue}\" already exists.`);((B,Q)=>{sr[B]=Q})(ue,w)}),i.clearPrewarmedResources=function(){let ue=me;ue&&(ue.isPreloaded()&&ue.numActive()===1?(ue.release(_e),me=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 Qt().getRTLTextPluginStatus()},i.getVersion=function(){return Ku},i.getWorkerCount=function(){return Ee.workerCount},i.getWorkerUrl=function(){return a.a.WORKER_URL},i.importScriptInWorkers=function(ue){return Ae().broadcast(\"IS\",ue)},i.prewarm=function(){Se().acquire(_e)},i.setMaxParallelImageRequests=function(ue){a.a.MAX_PARALLEL_IMAGE_REQUESTS=ue},i.setRTLTextPlugin=function(ue,w){return Qt().setRTLTextPlugin(ue,w)},i.setWorkerCount=function(ue){Ee.workerCount=ue},i.setWorkerUrl=function(ue){a.a.WORKER_URL=ue}});var n=e;return n})});var cje=ye((Ebr,uje)=>{\"use strict\";var nw=Dr(),AXt=ru().sanitizeHTML,SXt=AJ(),oje=wx();function sje(e,t){this.subplot=e,this.uid=e.uid+\"-\"+t,this.index=t,this.idSource=\"source-\"+this.uid,this.idLayer=oje.layoutLayerPrefix+this.uid,this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var ag=sje.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=u7(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,!!u7(e)){var r=MXt(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 lje(e){var t={},r={};switch(e.type){case\"circle\":nw.extendFlat(r,{\"circle-radius\":e.circle.radius,\"circle-color\":e.color,\"circle-opacity\":e.opacity});break;case\"line\":nw.extendFlat(r,{\"line-width\":e.line.width,\"line-color\":e.color,\"line-opacity\":e.opacity,\"line-dasharray\":e.line.dash});break;case\"fill\":nw.extendFlat(r,{\"fill-color\":e.color,\"fill-outline-color\":e.fill.outlinecolor,\"fill-opacity\":e.opacity});break;case\"symbol\":var n=e.symbol,i=SXt(n.textposition,n.iconsize);nw.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}),nw.extendFlat(r,{\"icon-color\":e.color,\"text-color\":n.textfont.color,\"text-opacity\":e.opacity});break;case\"raster\":nw.extendFlat(r,{\"raster-fade-duration\":0,\"raster-opacity\":e.opacity});break}return{layout:t,paint:r}}function MXt(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=AXt(e.sourceattribution)),n}uje.exports=function(t,r,n){var i=new sje(t,r);return i.update(n),i}});var yje=ye((kbr,mje)=>{\"use strict\";var LJ=aje(),PJ=Dr(),dje=ix(),fje=qa(),EXt=ho(),kXt=yv(),c7=vf(),vje=Mg(),CXt=vje.drawMode,LXt=vje.selectMode,PXt=Of().prepSelect,IXt=Of().clearOutline,RXt=Of().clearSelectionsCache,DXt=Of().selectOnClick,aw=wx(),FXt=cje();function pje(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 Uh=pje.prototype;Uh.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)};Uh.createMap=function(e,t,r,n){var i=this,a=t[i.id],o=i.styleObj=gje(a.style),s=a.bounds,l=s?[[s.west,s.south],[s.east,s.north]]:null,u=i.map=new LJ.Map({container:i.div,style:o.style,center:IJ(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 LJ.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(dje.fetchTraceGeoData(e)),Promise.all(f).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.updateMap=function(e,t,r,n){var i=this,a=i.map,o=t[this.id];i.rejectOnError(n);var s=[],l=gje(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(dje.fetchTraceGeoData(e)),Promise.all(s).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Uh.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&&DXt(l.originalEvent,n,[r.xaxis],[r.yaxis],r.id,s),u.indexOf(\"event\")>-1&&c7.click(n,l.originalEvent)}}};Uh.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=PJ.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),LXt(a)||CXt(a)?(r.dragPan.disable(),r.on(\"zoomstart\",t.clearOutline),t.dragOptions.prepFn=function(l,u,c){PXt(l,u,c,t.dragOptions,a)},kXt.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))};Uh.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])};Uh.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 RJ=Dr(),OXt=k_(),qXt=Yd(),_je=jk();xje.exports=function(t,r,n){OXt(t,r,n,{type:\"map\",attributes:_je,handleDefaults:BXt,partition:\"y\"})};function BXt(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,qXt(e,t,{name:\"layers\",handleItemDefaults:NXt}),t._input=e}function NXt(e,t){function r(l,u){return RJ.coerce(e,t,_je.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\",RJ.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\"),RJ.coerceFont(r,\"symbol.textfont\",void 0,{noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0}),r(\"symbol.textposition\"),r(\"symbol.placement\"))}}});var h7=ye(l0=>{\"use strict\";var f7=Dr(),wje=f7.strTranslate,UXt=f7.strScale,VXt=Id().getSubplotCalcData,GXt=Wp(),HXt=Oa(),Tje=So(),jXt=ru(),WXt=yje(),Tx=\"map\";l0.name=Tx;l0.attr=\"subplot\";l0.idRoot=Tx;l0.idRegex=l0.attrRegex=f7.counterRegex(Tx);l0.attributes={subplot:{valType:\"subplotid\",dflt:\"map\",editType:\"calc\"}};l0.layoutAttributes=jk();l0.supplyLayoutDefaults=bje();l0.plot=function(t){for(var r=t._fullLayout,n=t.calcdata,i=r._subplots[Tx],a=0;a_/2){var b=f.split(\"|\").join(\"
\");d.text(b).attr(\"data-unformatted\",b).call(jXt.convertToTspans,e),v=Tje.bBox(d.node())}d.attr(\"transform\",wje(-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 p=1;v.width+6>_&&(p=_/(v.width+6));var k=[n.l+n.w*o.x[1],n.t+n.h*(1-o.y[0])];h.attr(\"transform\",wje(k[0],k[1])+UXt(p))}};l0.updateFx=function(e){for(var t=e._fullLayout,r=t._subplots[Tx],n=0;n{\"use strict\";Aje.exports={attributes:i7(),supplyDefaults:OHe(),colorbar:$d(),formatLabels:TJ(),calc:vF(),plot:JHe(),hoverPoints:l7().hoverPoints,eventData:tje(),selectPoints:ije(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.update(t)}},moduleType:\"trace\",name:\"scattermap\",basePlotModule:h7(),categories:[\"map\",\"gl\",\"symbols\",\"showLegend\",\"scatter-like\"],meta:{}}});var Eje=ye((Ibr,Mje)=>{\"use strict\";Mje.exports=Sje()});var DJ=ye((Rbr,kje)=>{\"use strict\";var d1=e5(),XXt=Tu(),{hovertemplateAttrs:ZXt,templatefallbackAttrs:YXt}=Ll(),KXt=Gl(),Ax=Ao().extendFlat;kje.exports=Ax({locations:{valType:\"data_array\",editType:\"calc\"},z:{valType:\"data_array\",editType:\"calc\"},geojson:{valType:\"any\",editType:\"calc\"},featureidkey:Ax({},d1.featureidkey,{}),below:{valType:\"string\",editType:\"plot\"},text:d1.text,hovertext:d1.hovertext,marker:{line:{color:Ax({},d1.marker.line.color,{editType:\"plot\"}),width:Ax({},d1.marker.line.width,{editType:\"plot\"}),editType:\"calc\"},opacity:Ax({},d1.marker.opacity,{editType:\"plot\"}),editType:\"calc\"},selected:{marker:{opacity:Ax({},d1.selected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},unselected:{marker:{opacity:Ax({},d1.unselected.marker.opacity,{editType:\"plot\"}),editType:\"plot\"},editType:\"plot\"},hoverinfo:d1.hoverinfo,hovertemplate:ZXt({},{keys:[\"properties\"]}),hovertemplatefallback:YXt(),showlegend:Ax({},KXt.showlegend,{dflt:!1})},XXt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Lje=ye((Dbr,Cje)=>{\"use strict\";var Yk=Dr(),JXt=Qh(),$Xt=DJ();Cje.exports=function(t,r,n,i){function a(c,f){return Yk.coerce(t,r,$Xt,c,f)}var o=a(\"locations\"),s=a(\"z\"),l=a(\"geojson\");if(!Yk.isArrayOrTypedArray(o)||!o.length||!Yk.isArrayOrTypedArray(s)||!s.length||!(typeof l==\"string\"&&l!==\"\"||Yk.isPlainObject(l))){r.visible=!1;return}a(\"featureidkey\"),r._length=Math.min(o.length,s.length),a(\"below\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\");var u=a(\"marker.line.width\");u&&a(\"marker.line.color\"),a(\"marker.opacity\"),JXt(t,r,i,a,{prefix:\"\",cLetter:\"z\"}),Yk.coerceSelectionMarkerOpacity(r,a)}});var FJ=ye((Fbr,Rje)=>{\"use strict\";var QXt=Eo(),v1=Dr(),eZt=tc(),tZt=So(),rZt=tx().makeBlank,Pje=ix();function iZt(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:rZt()};if(!r)return a;var o=Pje.extractTraceFeature(e);if(!o)return a;var s=eZt.makeColorScaleFuncFromTrace(t),l=t.marker,u=l.line||{},c;v1.isArrayOrTypedArray(l.opacity)&&(c=function(k){var E=k.mo;return QXt(E)?+v1.constrain(E,0,1):0});var f;v1.isArrayOrTypedArray(u.color)&&(f=function(k){return k.mlc});var h;v1.isArrayOrTypedArray(u.width)&&(h=function(k){return k.mlw});for(var d=0;d{\"use strict\";var Fje=FJ().convert,nZt=FJ().convertOnSelect,Dje=wx().traceLayerPrefix;function zje(e,t){this.type=\"choroplethmap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"fill\",Dje+t+\"-fill\"],[\"line\",Dje+t+\"-line\"]],this.below=null}var C5=zje.prototype;C5.update=function(e){this._update(Fje(e)),e[0].trace._glTrace=this};C5.updateOnSelect=function(e){this._update(nZt(e))};C5._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])};C5.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};Oje.exports=function(t,r){var n=r[0].trace,i=new zje(t,n.uid),a=i.sourceId,o=Fje(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 Nje=ye((Obr,Bje)=>{\"use strict\";Bje.exports={attributes:DJ(),supplyDefaults:Lje(),colorbar:S_(),calc:FF(),plot:qje(),hoverPoints:OF(),eventData:qF(),selectPoints:BF(),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\";Uje.exports=Nje()});var OJ=ye((Bbr,Hje)=>{\"use strict\";var aZt=Tu(),{hovertemplateAttrs:oZt,templatefallbackAttrs:sZt}=Ll(),Gje=Gl(),d7=i7(),zJ=Ao().extendFlat;Hje.exports=zJ({lon:d7.lon,lat:d7.lat,z:{valType:\"data_array\",editType:\"calc\"},radius:{valType:\"number\",editType:\"plot\",arrayOk:!0,min:1,dflt:30},below:{valType:\"string\",editType:\"plot\"},text:d7.text,hovertext:d7.hovertext,hoverinfo:zJ({},Gje.hoverinfo,{flags:[\"lon\",\"lat\",\"z\",\"text\",\"name\"]}),hovertemplate:oZt(),hovertemplatefallback:sZt(),showlegend:zJ({},Gje.showlegend,{dflt:!1})},aZt(\"\",{cLetter:\"z\",editTypeOverride:\"calc\"}))});var Wje=ye((Nbr,jje)=>{\"use strict\";var lZt=Dr(),uZt=Qh(),cZt=OJ();jje.exports=function(t,r,n,i){function a(u,c){return lZt.coerce(t,r,cZt,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\"),a(\"hovertemplatefallback\"),uZt(t,r,i,a,{prefix:\"\",cLetter:\"z\"})}});var Yje=ye((Ubr,Zje)=>{\"use strict\";var qJ=Eo(),fZt=Dr().isArrayOrTypedArray,BJ=fs().BADNUM,hZt=gv(),Xje=Dr()._;Zje.exports=function(t,r){for(var n=r._length,i=new Array(n),a=r.z,o=fZt(a)&&a.length,s=0;s{\"use strict\";var dZt=Eo(),NJ=Dr(),Kje=ka(),Jje=tc(),$je=fs().BADNUM,vZt=tx().makeBlank;Qje.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:vZt()};if(!n)return a;var o=[],s,l=r.z,u=r.radius,c=NJ.isArrayOrTypedArray(l)&&l.length,f=NJ.isArrayOrTypedArray(u);for(s=0;s0?+u[s]:0),o.push({type:\"Feature\",geometry:{type:\"Point\",coordinates:d},properties:v})}}var b=Jje.extractOpts(r),p=b.reversescale?Jje.flipScale(b.colorscale):b.colorscale,k=p[0][1],E=Kje.opacity(k)<1?k:Kje.addOpacity(k,0),S=[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,E];for(s=1;s{\"use strict\";var tWe=eWe(),pZt=wx().traceLayerPrefix;function rWe(e,t){this.type=\"densitymap\",this.subplot=e,this.uid=t,this.sourceId=\"source-\"+t,this.layerList=[[\"heatmap\",pZt+t+\"-heatmap\"]],this.below=null}var v7=rWe.prototype;v7.update=function(e){var t=this.subplot,r=this.layerList,n=tWe(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])};v7.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};iWe.exports=function(t,r){var n=r[0].trace,i=new rWe(t,n.uid),a=i.sourceId,o=tWe(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 oWe=ye((Hbr,aWe)=>{\"use strict\";var gZt=ho(),mZt=l7().hoverPoints,yZt=l7().getExtraText;aWe.exports=function(t,r,n){var i=mZt(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=gZt.tickText(u,u.c2l(l.z),\"hover\").text}return a.extraText=yZt(s,l,o[0].t.labels),[a]}}});var lWe=ye((jbr,sWe)=>{\"use strict\";sWe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t.z=r.z,t}});var cWe=ye((Wbr,uWe)=>{\"use strict\";uWe.exports={attributes:OJ(),supplyDefaults:Wje(),colorbar:S_(),formatLabels:TJ(),calc:Yje(),plot:nWe(),hoverPoints:oWe(),eventData:lWe(),getBelow:function(e,t){for(var r=t.getMapLayers(),n=0;n{\"use strict\";fWe.exports=cWe()});var VJ=ye((Ybr,mWe)=>{\"use strict\";var _Zt=ec(),xZt=Gl(),dWe=Lh(),UJ=n3(),bZt=Cc().attributes,{hovertemplateAttrs:vWe,templatefallbackAttrs:pWe}=Ll(),wZt=Tu(),TZt=vl().templatedArray,AZt=df().descriptionOnlyNumbers,gWe=Ao().extendFlat,SZt=mc().overrideAll,Zbr=mWe.exports=SZt({hoverinfo:gWe({},xZt.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:UJ.hoverlabel,domain:bZt({name:\"sankey\",trace:!0}),orientation:{valType:\"enumerated\",values:[\"v\",\"h\"],dflt:\"h\"},valueformat:{valType:\"string\",dflt:\".3s\",description:AZt(\"value\")},valuesuffix:{valType:\"string\",dflt:\"\"},arrangement:{valType:\"enumerated\",values:[\"snap\",\"perpendicular\",\"freeform\",\"fixed\"],dflt:\"snap\"},textfont:_Zt({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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),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:dWe.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:UJ.hoverlabel,hovertemplate:vWe({},{keys:[\"value\",\"label\"]}),hovertemplatefallback:pWe(),colorscales:TZt(\"concentrationscales\",{editType:\"calc\",label:{valType:\"string\",editType:\"calc\",dflt:\"\"},cmax:{valType:\"number\",editType:\"calc\",dflt:1},cmin:{valType:\"number\",editType:\"calc\",dflt:0},colorscale:gWe(wZt().colorscale,{dflt:[[0,\"white\"],[1,\"black\"]]})})}},\"calc\",\"nested\")});var wWe=ye((Kbr,bWe)=>{\"use strict\";var L5=Dr(),p7=VJ(),MZt=ka(),yWe=cd(),EZt=Cc().defaults,_We=fM(),xWe=vl(),kZt=Yd();bWe.exports=function(t,r,n,i){function a(S,L){return L5.coerce(t,r,p7,S,L)}var o=L5.extendDeep(i.hoverlabel,t.hoverlabel),s=t.node,l=xWe.newContainer(r,\"node\");function u(S,L){return L5.coerce(s,l,p7.node,S,L)}u(\"label\"),u(\"groups\"),u(\"x\"),u(\"y\"),u(\"pad\"),u(\"thickness\"),u(\"line.color\"),u(\"line.width\"),u(\"hoverinfo\",t.hoverinfo),_We(s,l,u,o),u(\"hovertemplate\"),u(\"align\");var c=i.colorway,f=function(S){return c[S%c.length]};u(\"color\",l.label.map(function(S,L){return MZt.addOpacity(f(L),.8)})),u(\"customdata\");var h=t.link||{},d=xWe.newContainer(r,\"link\");function v(S,L){return L5.coerce(h,d,p7.link,S,L)}v(\"label\"),v(\"arrowlen\"),v(\"source\"),v(\"target\"),v(\"value\"),v(\"line.color\"),v(\"line.width\"),v(\"hoverinfo\",t.hoverinfo),_We(h,d,v,o),v(\"hovertemplate\");var _=yWe(i.paper_bgcolor).getLuminance()<.333,b=_?\"rgba(255, 255, 255, 0.6)\":\"rgba(0, 0, 0, 0.2)\",p=v(\"color\",b);function k(S){var L=yWe(S);if(!L.isValid())return S;var x=L.getAlpha();return x<=.8?L.setAlpha(x+.2):L=_?L.brighten():L.darken(),L.toRgbString()}v(\"hovercolor\",Array.isArray(p)?p.map(k):k(p)),v(\"customdata\"),kZt(h,d,{name:\"colorscales\",handleItemDefaults:CZt}),EZt(r,i,a),a(\"orientation\"),a(\"valueformat\"),a(\"valuesuffix\");var E;l.x.length&&l.y.length&&(E=\"freeform\"),a(\"arrangement\",E),L5.coerceFont(a,\"textfont\",i.font,{autoShadowDflt:!0}),r._length=null};function CZt(e,t){function r(n,i){return L5.coerce(e,t,p7.link.colorscales,n,i)}r(\"label\"),r(\"cmin\"),r(\"cmax\"),r(\"colorscale\")}});var GJ=ye((Jbr,TWe)=>{\"use strict\";TWe.exports=LZt;function LZt(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=k[k.length-1];var E=e[b];if(a[b]=0&&s[b].push(o[L])}a[b]=S}else{if(n[b]===r[b]){for(var x=[],C=[],M=0,S=p.length-1;S>=0;--S){var g=p[S];if(i[g]=!1,x.push(g),C.push(s[g]),M+=s[g].length,o[g]=c.length,g===b){p.length=S;break}}c.push(x);for(var P=new Array(M),S=0;S{\"use strict\";var PZt=GJ(),P5=Dr(),IZt=Jm().wrap,Kk=P5.isArrayOrTypedArray,AWe=P5.isIndex,SWe=tc();function RZt(e){var t=e.node,r=e.link,n=[],i=Kk(r.color),a=Kk(r.hovercolor),o=Kk(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 _=v+1;e.node._count=_;var b,p=e.node.groups,k={};for(c=0;c0&&AWe(M,_)&&AWe(g,_)&&!(k.hasOwnProperty(M)&&k.hasOwnProperty(g)&&k[M]===k[g])){k.hasOwnProperty(g)&&(g=k[g]),k.hasOwnProperty(M)&&(M=k[M]),M=+M,g=+g,s[M]=s[g]=!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:g,value:+C}),x.source.push(M),x.target.push(g)}}var z=_+p.length,O=Kk(t.color),V=Kk(t.customdata),G=[];for(c=0;c_-1,childrenNodes:[],pointNumber:c,label:Z,color:O?t.color[c]:t.color,customdata:V?t.customdata[c]:t.customdata})}var H=!1;return DZt(z,x.source,x.target)&&(H=!0),{circular:H,links:n,nodes:G,groups:p,groupLookup:k}}function DZt(e,t,r){for(var n=P5.init2dArray(e,0),i=0;i1})}MWe.exports=function(t,r){var n=RZt(r);return IZt({circular:n.circular,_nodes:n.nodes,_links:n.links,_groups:n.groups,_groupLookup:n.groupLookup})}});var CWe=ye((g7,kWe)=>{(function(e,t){typeof g7==\"object\"&&typeof kWe!=\"undefined\"?t(g7):(e=e||self,t(e.d3=e.d3||{}))})(g7,function(e){\"use strict\";function t(C){var M=+this._x.call(null,C),g=+this._y.call(null,C);return r(this.cover(M,g),M,g,C)}function r(C,M,g,P){if(isNaN(M)||isNaN(g))return C;var T,z=C._root,O={data:P},V=C._x0,G=C._y0,Z=C._x1,H=C._y1,N,j,re,oe,_e,Ee,Ce,me;if(!z)return C._root=O,C;for(;z.length;)if((_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j,T=z,!(z=z[Ce=Ee<<1|_e]))return T[Ce]=O,C;if(re=+C._x.call(null,z.data),oe=+C._y.call(null,z.data),M===re&&g===oe)return O.next=z,T?T[Ce]=O:C._root=O,C;do T=T?T[Ce]=new Array(4):C._root=new Array(4),(_e=M>=(N=(V+Z)/2))?V=N:Z=N,(Ee=g>=(j=(G+H)/2))?G=j:H=j;while((Ce=Ee<<1|_e)===(me=(oe>=j)<<1|re>=N));return T[me]=z,T[Ce]=O,C}function n(C){var M,g,P=C.length,T,z,O=new Array(P),V=new Array(P),G=1/0,Z=1/0,H=-1/0,N=-1/0;for(g=0;gH&&(H=T),zN&&(N=z));if(G>H||Z>N)return this;for(this.cover(G,Z).cover(H,N),g=0;gC||C>=T||P>M||M>=z;)switch(Z=(MH||(V=oe.y0)>N||(G=oe.x1)=Ce)<<1|C>=Ee)&&(oe=j[j.length-1],j[j.length-1]=j[j.length-1-_e],j[j.length-1-_e]=oe)}else{var me=C-+this._x.call(null,re.data),ie=M-+this._y.call(null,re.data),Se=me*me+ie*ie;if(Se=(j=(O+G)/2))?O=j:G=j,(_e=N>=(re=(V+Z)/2))?V=re:Z=re,M=g,!(g=g[Ee=_e<<1|oe]))return this;if(!g.length)break;(M[Ee+1&3]||M[Ee+2&3]||M[Ee+3&3])&&(P=M,Ce=Ee)}for(;g.data!==C;)if(T=g,!(g=g.next))return this;return(z=g.next)&&delete g.next,T?(z?T.next=z:delete T.next,this):M?(z?M[Ee]=z:delete M[Ee],(g=M[0]||M[1]||M[2]||M[3])&&g===(M[3]||M[2]||M[1]||M[0])&&!g.length&&(P?P[Ce]=g:this._root=g),this):(this._root=z,this)}function c(C){for(var M=0,g=C.length;M{(function(e,t){t(typeof m7==\"object\"&&typeof LWe!=\"undefined\"?m7:e.d3=e.d3||{})})(m7,function(e){\"use strict\";var t=\"$\";function r(){}r.prototype=n.prototype={constructor:r,has:function(_){return t+_ in this},get:function(_){return this[t+_]},set:function(_,b){return this[t+_]=b,this},remove:function(_){var b=t+_;return b in this&&delete this[b]},clear:function(){for(var _ in this)_[0]===t&&delete this[_]},keys:function(){var _=[];for(var b in this)b[0]===t&&_.push(b.slice(1));return _},values:function(){var _=[];for(var b in this)b[0]===t&&_.push(this[b]);return _},entries:function(){var _=[];for(var b in this)b[0]===t&&_.push({key:b.slice(1),value:this[b]});return _},size:function(){var _=0;for(var b in this)b[0]===t&&++_;return _},empty:function(){for(var _ in this)if(_[0]===t)return!1;return!0},each:function(_){for(var b in this)b[0]===t&&_(this[b],b.slice(1),this)}};function n(_,b){var p=new r;if(_ instanceof r)_.each(function(x,C){p.set(C,x)});else if(Array.isArray(_)){var k=-1,E=_.length,S;if(b==null)for(;++k=_.length)return p!=null&&x.sort(p),k!=null?k(x):x;for(var P=-1,T=x.length,z=_[C++],O,V,G=n(),Z,H=M();++P_.length)return x;var M,g=b[C-1];return k!=null&&C>=_.length?M=x.entries():(M=[],x.each(function(P,T){M.push({key:T,values:L(P,C)})})),g!=null?M.sort(function(P,T){return g(P.key,T.key)}):M}return E={object:function(x){return S(x,0,a,o)},map:function(x){return S(x,0,s,l)},entries:function(x){return L(S(x,0,s,l),0)},key:function(x){return _.push(x),E},sortKeys:function(x){return b[_.length-1]=x,E},sortValues:function(x){return p=x,E},rollup:function(x){return k=x,E}}}function a(){return{}}function o(_,b,p){_[b]=p}function s(){return n()}function l(_,b,p){_.set(b,p)}function u(){}var c=n.prototype;u.prototype=f.prototype={constructor:u,has:c.has,add:function(_){return _+=\"\",this[t+_]=_,this},remove:c.remove,clear:c.clear,values:c.keys,size:c.size,empty:c.empty,each:c.each};function f(_,b){var p=new u;if(_ instanceof u)_.each(function(S){p.add(S)});else if(_){var k=-1,E=_.length;if(b==null)for(;++k{(function(e,t){typeof _7==\"object\"&&typeof PWe!=\"undefined\"?t(_7):(e=e||self,t(e.d3=e.d3||{}))})(_7,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 x7==\"object\"&&typeof RWe!=\"undefined\"?t(x7):(e=e||self,t(e.d3=e.d3||{}))})(x7,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=_.prototype={constructor:v,restart:function(C,M,g){if(typeof C!=\"function\")throw new TypeError(\"callback is not a function\");g=(g==null?h():+g)+(M==null?0:+M),!this._next&&o!==this&&(o?o._next=this:a=this,o=this),this._call=C,this._time=g,S()},stop:function(){this._call&&(this._call=null,this._time=1/0,S())}};function _(C,M,g){var P=new v;return P.restart(C,M,g),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 p(){l=(s=c.now())+u,t=r=0;try{b()}finally{t=0,E(),l=0}}function k(){var C=c.now(),M=C-s;M>i&&(u-=M,s=C)}function E(){for(var C,M=a,g,P=1/0;M;)M._call?(P>M._time&&(P=M._time),C=M,M=M._next):(g=M._next,M._next=null,M=C?C._next=g:a=g);o=C,S(P)}function S(C){if(!t){r&&(r=clearTimeout(r));var M=C-l;M>24?(C<1/0&&(r=setTimeout(p,C-c.now()-u)),n&&(n=clearInterval(n))):(n||(s=c.now(),n=setInterval(k,i)),t=1,f(p))}}function L(C,M,g){var P=new v;return M=M==null?0:+M,P.restart(function(T){P.stop(),C(T+M)},M,g),P}function x(C,M,g){var P=new v,T=M;return M==null?(P.restart(C,M,g),P):(M=+M,g=g==null?h():+g,P.restart(function z(O){O+=T,P.restart(z,T+=M,g),C(O)},M,g),P)}e.interval=x,e.now=h,e.timeout=L,e.timer=_,e.timerFlush=b,Object.defineProperty(e,\"__esModule\",{value:!0})})});var zWe=ye((b7,FWe)=>{(function(e,t){typeof b7==\"object\"&&typeof FWe!=\"undefined\"?t(b7,CWe(),y7(),IWe(),DWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(b7,function(e,t,r,n,i){\"use strict\";function a(C,M){var g;C==null&&(C=0),M==null&&(M=0);function P(){var T,z=g.length,O,V=0,G=0;for(T=0;TN.index){var Re=j-Fe.x-Fe.vx,ce=re-Fe.y-Fe.vy,Ze=Re*Re+ce*ce;Zej+ge||Lere+ge||AeG.r&&(G.r=G[Z].r)}function V(){if(M){var G,Z=M.length,H;for(g=new Array(Z),G=0;G1?(_e==null?V.remove(oe):V.set(oe,re(_e)),M):V.get(oe)},find:function(oe,_e,Ee){var Ce=0,me=C.length,ie,Se,Le,Ae,Fe;for(Ee==null?Ee=1/0:Ee*=Ee,Ce=0;Ce1?(Z.on(oe,_e),M):Z.on(oe)}}}function E(){var C,M,g,P=o(-30),T,z=1,O=1/0,V=.81;function G(j){var re,oe=C.length,_e=t.quadtree(C,v,_).visitAfter(H);for(g=j,re=0;re=O)return;(j.data!==M||j.next)&&(Ee===0&&(Ee=s(),ie+=Ee*Ee),Ce===0&&(Ce=s(),ie+=Ce*Ce),ie{(function(e,t){typeof w7==\"object\"&&typeof OWe!=\"undefined\"?t(w7):(e=e||self,t(e.d3=e.d3||{}))})(w7,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,_=c-l,b=h-s,p=d-l,k=b*b+p*p;if(f<0)throw new Error(\"negative radius: \"+f);if(this._x1===null)this._+=\"M\"+(this._x1=s)+\",\"+(this._y1=l);else if(k>n)if(!(Math.abs(p*v-_*b)>n)||!f)this._+=\"L\"+(this._x1=s)+\",\"+(this._y1=l);else{var E=u-h,S=c-d,L=v*v+_*_,x=E*E+S*S,C=Math.sqrt(L),M=Math.sqrt(k),g=f*Math.tan((t-Math.acos((L+k-x)/(2*C*M)))/2),P=g/M,T=g/C;Math.abs(P-1)>n&&(this._+=\"L\"+(s+P*b)+\",\"+(l+P*p)),this._+=\"A\"+f+\",\"+f+\",0,0,\"+ +(p*E>b*S)+\",\"+(this._x1=s+T*v)+\",\"+(this._y1=l+T*_)}},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),_=s+d,b=l+v,p=1^h,k=h?c-f:f-c;if(u<0)throw new Error(\"negative radius: \"+u);this._x1===null?this._+=\"M\"+_+\",\"+b:(Math.abs(this._x1-_)>n||Math.abs(this._y1-b)>n)&&(this._+=\"L\"+_+\",\"+b),u&&(k<0&&(k=k%r+r),k>i?this._+=\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(s-d)+\",\"+(l-v)+\"A\"+u+\",\"+u+\",0,1,\"+p+\",\"+(this._x1=_)+\",\"+(this._y1=b):k>n&&(this._+=\"A\"+u+\",\"+u+\",0,\"+ +(k>=t)+\",\"+p+\",\"+(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 HJ=ye((T7,BWe)=>{(function(e,t){typeof T7==\"object\"&&typeof BWe!=\"undefined\"?t(T7,qWe()):(e=e||self,t(e.d3=e.d3||{},e.d3))})(T7,function(e,t){\"use strict\";function r(Mt){return function(){return Mt}}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(Mt){return Mt>1?0:Mt<-1?f:Math.acos(Mt)}function _(Mt){return Mt>=1?h:Mt<=-1?-h:Math.asin(Mt)}function b(Mt){return Mt.innerRadius}function p(Mt){return Mt.outerRadius}function k(Mt){return Mt.startAngle}function E(Mt){return Mt.endAngle}function S(Mt){return Mt&&Mt.padAngle}function L(Mt,kr,Jr,vi,hn,An,Mn,Li){var _n=Jr-Mt,ya=vi-kr,Jn=Mn-hn,Ma=Li-An,_o=Ma*_n-Jn*ya;if(!(_o*_oZl*Zl+Su*Su&&(As=Ks,cl=zs),{cx:As,cy:cl,x01:-Jn,y01:-Ma,x11:As*(hn/zl-1),y11:cl*(hn/zl-1)}}function C(){var Mt=b,kr=p,Jr=r(0),vi=null,hn=k,An=E,Mn=S,Li=null;function _n(){var ya,Jn,Ma=+Mt.apply(this,arguments),_o=+kr.apply(this,arguments),No=hn.apply(this,arguments)-h,po=An.apply(this,arguments)-h,Lo=n(po-No),ko=po>No;if(Li||(Li=ya=t.path()),_oc))Li.moveTo(0,0);else if(Lo>d-c)Li.moveTo(_o*a(No),_o*l(No)),Li.arc(0,0,_o,No,po,!ko),Ma>c&&(Li.moveTo(Ma*a(po),Ma*l(po)),Li.arc(0,0,Ma,po,No,ko));else{var Ds=No,Fs=po,ll=No,ul=po,zl=Lo,us=Lo,il=Mn.apply(this,arguments)/2,As=il>c&&(vi?+vi.apply(this,arguments):u(Ma*Ma+_o*_o)),cl=s(n(_o-Ma)/2,+Jr.apply(this,arguments)),Ks=cl,zs=cl,Io,ls;if(As>c){var Zl=_(As/Ma*l(il)),Su=_(As/_o*l(il));(zl-=Zl*2)>c?(Zl*=ko?1:-1,ll+=Zl,ul-=Zl):(zl=0,ll=ul=(No+po)/2),(us-=Su*2)>c?(Su*=ko?1:-1,Ds+=Su,Fs-=Su):(us=0,Ds=Fs=(No+po)/2)}var nc=_o*a(Ds),bs=_o*l(Ds),Rn=Ma*a(ul),_a=Ma*l(ul);if(cl>c){var Vu=_o*a(Fs),Ol=_o*l(Fs),xo=Ma*a(ll),Yl=Ma*l(ll),Ns;if(Loc?zs>c?(Io=x(xo,Yl,nc,bs,_o,zs,ko),ls=x(Vu,Ol,Rn,_a,_o,zs,ko),Li.moveTo(Io.cx+Io.x01,Io.cy+Io.y01),zsc)||!(zl>c)?Li.lineTo(Rn,_a):Ks>c?(Io=x(Rn,_a,Vu,Ol,Ma,-Ks,ko),ls=x(nc,bs,xo,Yl,Ma,-Ks,ko),Li.lineTo(Io.cx+Io.x01,Io.cy+Io.y01),Ks=_o;--No)Li.point(Fs[No],ll[No]);Li.lineEnd(),Li.areaEnd()}ko&&(Fs[Ma]=+Mt(Lo,Ma,Jn),ll[Ma]=+Jr(Lo,Ma,Jn),Li.point(kr?+kr(Lo,Ma,Jn):Fs[Ma],vi?+vi(Lo,Ma,Jn):ll[Ma]))}if(Ds)return Li=null,Ds+\"\"||null}function ya(){return z().defined(hn).curve(Mn).context(An)}return _n.x=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),kr=null,_n):Mt},_n.x0=function(Jn){return arguments.length?(Mt=typeof Jn==\"function\"?Jn:r(+Jn),_n):Mt},_n.x1=function(Jn){return arguments.length?(kr=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):kr},_n.y=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),vi=null,_n):Jr},_n.y0=function(Jn){return arguments.length?(Jr=typeof Jn==\"function\"?Jn:r(+Jn),_n):Jr},_n.y1=function(Jn){return arguments.length?(vi=Jn==null?null:typeof Jn==\"function\"?Jn:r(+Jn),_n):vi},_n.lineX0=_n.lineY0=function(){return ya().x(Mt).y(Jr)},_n.lineY1=function(){return ya().x(Mt).y(vi)},_n.lineX1=function(){return ya().x(kr).y(Jr)},_n.defined=function(Jn){return arguments.length?(hn=typeof Jn==\"function\"?Jn:r(!!Jn),_n):hn},_n.curve=function(Jn){return arguments.length?(Mn=Jn,An!=null&&(Li=Mn(An)),_n):Mn},_n.context=function(Jn){return arguments.length?(Jn==null?An=Li=null:Li=Mn(An=Jn),_n):An},_n}function V(Mt,kr){return krMt?1:kr>=Mt?0:NaN}function G(Mt){return Mt}function Z(){var Mt=G,kr=V,Jr=null,vi=r(0),hn=r(d),An=r(0);function Mn(Li){var _n,ya=Li.length,Jn,Ma,_o=0,No=new Array(ya),po=new Array(ya),Lo=+vi.apply(this,arguments),ko=Math.min(d,Math.max(-d,hn.apply(this,arguments)-Lo)),Ds,Fs=Math.min(Math.abs(ko)/ya,An.apply(this,arguments)),ll=Fs*(ko<0?-1:1),ul;for(_n=0;_n0&&(_o+=ul);for(kr!=null?No.sort(function(zl,us){return kr(po[zl],po[us])}):Jr!=null&&No.sort(function(zl,us){return Jr(Li[zl],Li[us])}),_n=0,Ma=_o?(ko-ya*ll)/_o:0;_n0?ul*Ma:0)+ll,po[Jn]={data:Li[Jn],index:_n,value:ul,startAngle:Lo,endAngle:Ds,padAngle:Fs};return po}return Mn.value=function(Li){return arguments.length?(Mt=typeof Li==\"function\"?Li:r(+Li),Mn):Mt},Mn.sortValues=function(Li){return arguments.length?(kr=Li,Jr=null,Mn):kr},Mn.sort=function(Li){return arguments.length?(Jr=Li,kr=null,Mn):Jr},Mn.startAngle=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.endAngle=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.padAngle=function(Li){return arguments.length?(An=typeof Li==\"function\"?Li:r(+Li),Mn):An},Mn}var H=j(g);function N(Mt){this._curve=Mt}N.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(Mt,kr){this._curve.point(kr*Math.sin(Mt),kr*-Math.cos(Mt))}};function j(Mt){function kr(Jr){return new N(Mt(Jr))}return kr._curve=Mt,kr}function re(Mt){var kr=Mt.curve;return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt.curve=function(Jr){return arguments.length?kr(j(Jr)):kr()._curve},Mt}function oe(){return re(z().curve(H))}function _e(){var Mt=O().curve(H),kr=Mt.curve,Jr=Mt.lineX0,vi=Mt.lineX1,hn=Mt.lineY0,An=Mt.lineY1;return Mt.angle=Mt.x,delete Mt.x,Mt.startAngle=Mt.x0,delete Mt.x0,Mt.endAngle=Mt.x1,delete Mt.x1,Mt.radius=Mt.y,delete Mt.y,Mt.innerRadius=Mt.y0,delete Mt.y0,Mt.outerRadius=Mt.y1,delete Mt.y1,Mt.lineStartAngle=function(){return re(Jr())},delete Mt.lineX0,Mt.lineEndAngle=function(){return re(vi())},delete Mt.lineX1,Mt.lineInnerRadius=function(){return re(hn())},delete Mt.lineY0,Mt.lineOuterRadius=function(){return re(An())},delete Mt.lineY1,Mt.curve=function(Mn){return arguments.length?kr(j(Mn)):kr()._curve},Mt}function Ee(Mt,kr){return[(kr=+kr)*Math.cos(Mt-=Math.PI/2),kr*Math.sin(Mt)]}var Ce=Array.prototype.slice;function me(Mt){return Mt.source}function ie(Mt){return Mt.target}function Se(Mt){var kr=me,Jr=ie,vi=P,hn=T,An=null;function Mn(){var Li,_n=Ce.call(arguments),ya=kr.apply(this,_n),Jn=Jr.apply(this,_n);if(An||(An=Li=t.path()),Mt(An,+vi.apply(this,(_n[0]=ya,_n)),+hn.apply(this,_n),+vi.apply(this,(_n[0]=Jn,_n)),+hn.apply(this,_n)),Li)return An=null,Li+\"\"||null}return Mn.source=function(Li){return arguments.length?(kr=Li,Mn):kr},Mn.target=function(Li){return arguments.length?(Jr=Li,Mn):Jr},Mn.x=function(Li){return arguments.length?(vi=typeof Li==\"function\"?Li:r(+Li),Mn):vi},Mn.y=function(Li){return arguments.length?(hn=typeof Li==\"function\"?Li:r(+Li),Mn):hn},Mn.context=function(Li){return arguments.length?(An=Li==null?null:Li,Mn):An},Mn}function Le(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr=(kr+vi)/2,Jr,kr,hn,vi,hn)}function Ae(Mt,kr,Jr,vi,hn){Mt.moveTo(kr,Jr),Mt.bezierCurveTo(kr,Jr=(Jr+hn)/2,vi,Jr,vi,hn)}function Fe(Mt,kr,Jr,vi,hn){var An=Ee(kr,Jr),Mn=Ee(kr,Jr=(Jr+hn)/2),Li=Ee(vi,Jr),_n=Ee(vi,hn);Mt.moveTo(An[0],An[1]),Mt.bezierCurveTo(Mn[0],Mn[1],Li[0],Li[1],_n[0],_n[1])}function Pe(){return Se(Le)}function ge(){return Se(Ae)}function Re(){var Mt=Se(Fe);return Mt.angle=Mt.x,delete Mt.x,Mt.radius=Mt.y,delete Mt.y,Mt}var ce={draw:function(Mt,kr){var Jr=Math.sqrt(kr/f);Mt.moveTo(Jr,0),Mt.arc(0,0,Jr,0,d)}},Ze={draw:function(Mt,kr){var Jr=Math.sqrt(kr/5)/2;Mt.moveTo(-3*Jr,-Jr),Mt.lineTo(-Jr,-Jr),Mt.lineTo(-Jr,-3*Jr),Mt.lineTo(Jr,-3*Jr),Mt.lineTo(Jr,-Jr),Mt.lineTo(3*Jr,-Jr),Mt.lineTo(3*Jr,Jr),Mt.lineTo(Jr,Jr),Mt.lineTo(Jr,3*Jr),Mt.lineTo(-Jr,3*Jr),Mt.lineTo(-Jr,Jr),Mt.lineTo(-3*Jr,Jr),Mt.closePath()}},ut=Math.sqrt(1/3),pt=ut*2,Zt={draw:function(Mt,kr){var Jr=Math.sqrt(kr/pt),vi=Jr*ut;Mt.moveTo(0,-Jr),Mt.lineTo(vi,0),Mt.lineTo(0,Jr),Mt.lineTo(-vi,0),Mt.closePath()}},st=.8908130915292852,lt=Math.sin(f/10)/Math.sin(7*f/10),Gt=Math.sin(d/10)*lt,Nt=-Math.cos(d/10)*lt,Jt={draw:function(Mt,kr){var Jr=Math.sqrt(kr*st),vi=Gt*Jr,hn=Nt*Jr;Mt.moveTo(0,-Jr),Mt.lineTo(vi,hn);for(var An=1;An<5;++An){var Mn=d*An/5,Li=Math.cos(Mn),_n=Math.sin(Mn);Mt.lineTo(_n*Jr,-Li*Jr),Mt.lineTo(Li*vi-_n*hn,_n*vi+Li*hn)}Mt.closePath()}},sr={draw:function(Mt,kr){var Jr=Math.sqrt(kr),vi=-Jr/2;Mt.rect(vi,vi,Jr,Jr)}},wr=Math.sqrt(3),cr={draw:function(Mt,kr){var Jr=-Math.sqrt(kr/(wr*3));Mt.moveTo(0,Jr*2),Mt.lineTo(-wr*Jr,-Jr),Mt.lineTo(wr*Jr,-Jr),Mt.closePath()}},$e=-.5,St=Math.sqrt(3)/2,Qt=1/Math.sqrt(12),Vt=(Qt/2+1)*3,_t={draw:function(Mt,kr){var Jr=Math.sqrt(kr/Vt),vi=Jr/2,hn=Jr*Qt,An=vi,Mn=Jr*Qt+Jr,Li=-An,_n=Mn;Mt.moveTo(vi,hn),Mt.lineTo(An,Mn),Mt.lineTo(Li,_n),Mt.lineTo($e*vi-St*hn,St*vi+$e*hn),Mt.lineTo($e*An-St*Mn,St*An+$e*Mn),Mt.lineTo($e*Li-St*_n,St*Li+$e*_n),Mt.lineTo($e*vi+St*hn,$e*hn-St*vi),Mt.lineTo($e*An+St*Mn,$e*Mn-St*An),Mt.lineTo($e*Li+St*_n,$e*_n-St*Li),Mt.closePath()}},It=[ce,Ze,Zt,sr,Jt,cr,_t];function mt(){var Mt=r(ce),kr=r(64),Jr=null;function vi(){var hn;if(Jr||(Jr=hn=t.path()),Mt.apply(this,arguments).draw(Jr,+kr.apply(this,arguments)),hn)return Jr=null,hn+\"\"||null}return vi.type=function(hn){return arguments.length?(Mt=typeof hn==\"function\"?hn:r(hn),vi):Mt},vi.size=function(hn){return arguments.length?(kr=typeof hn==\"function\"?hn:r(+hn),vi):kr},vi.context=function(hn){return arguments.length?(Jr=hn==null?null:hn,vi):Jr},vi}function er(){}function lr(Mt,kr,Jr){Mt._context.bezierCurveTo((2*Mt._x0+Mt._x1)/3,(2*Mt._y0+Mt._y1)/3,(Mt._x0+2*Mt._x1)/3,(Mt._y0+2*Mt._y1)/3,(Mt._x0+4*Mt._x1+kr)/6,(Mt._y0+4*Mt._y1+Jr)/6)}function Tr(Mt){this._context=Mt}Tr.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:lr(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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);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:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Lr(Mt){return new Tr(Mt)}function ti(Mt){this._context=Mt}ti.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x2=Mt,this._y2=kr;break;case 1:this._point=2,this._x3=Mt,this._y3=kr;break;case 2:this._point=3,this._x4=Mt,this._y4=kr,this._context.moveTo((this._x0+4*this._x1+Mt)/6,(this._y0+4*this._y1+kr)/6);break;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function Br(Mt){return new ti(Mt)}function Vr(Mt){this._context=Mt}Vr.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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var Jr=(this._x0+4*this._x1+Mt)/6,vi=(this._y0+4*this._y1+kr)/6;this._line?this._context.lineTo(Jr,vi):this._context.moveTo(Jr,vi);break;case 3:this._point=4;default:lr(this,Mt,kr);break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr}};function dt(Mt){return new Vr(Mt)}function Ge(Mt,kr){this._basis=new Tr(Mt),this._beta=kr}Ge.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length-1;if(Jr>0)for(var vi=Mt[0],hn=kr[0],An=Mt[Jr]-vi,Mn=kr[Jr]-hn,Li=-1,_n;++Li<=Jr;)_n=Li/Jr,this._basis.point(this._beta*Mt[Li]+(1-this._beta)*(vi+_n*An),this._beta*kr[Li]+(1-this._beta)*(hn+_n*Mn));this._x=this._y=null,this._basis.lineEnd()},point:function(Mt,kr){this._x.push(+Mt),this._y.push(+kr)}};var Je=function Mt(kr){function Jr(vi){return kr===1?new Tr(vi):new Ge(vi,kr)}return Jr.beta=function(vi){return Mt(+vi)},Jr}(.85);function je(Mt,kr,Jr){Mt._context.bezierCurveTo(Mt._x1+Mt._k*(Mt._x2-Mt._x0),Mt._y1+Mt._k*(Mt._y2-Mt._y0),Mt._x2+Mt._k*(Mt._x1-kr),Mt._y2+Mt._k*(Mt._y1-Jr),Mt._x2,Mt._y2)}function tt(Mt,kr){this._context=Mt,this._k=(1-kr)/6}tt.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:je(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2,this._x1=Mt,this._y1=kr;break;case 2:this._point=3;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xt=function Mt(kr){function Jr(vi){return new tt(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function Ie(Mt,kr){this._context=Mt,this._k=(1-kr)/6}Ie.prototype={areaStart:er,areaEnd:er,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(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var xe=function Mt(kr){function Jr(vi){return new Ie(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ke(Mt,kr){this._context=Mt,this._k=(1-kr)/6}ke.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(Mt,kr){switch(Mt=+Mt,kr=+kr,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:je(this,Mt,kr);break}this._x0=this._x1,this._x1=this._x2,this._x2=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vt=function Mt(kr){function Jr(vi){return new ke(vi,kr)}return Jr.tension=function(vi){return Mt(+vi)},Jr}(0);function ir(Mt,kr,Jr){var vi=Mt._x1,hn=Mt._y1,An=Mt._x2,Mn=Mt._y2;if(Mt._l01_a>c){var Li=2*Mt._l01_2a+3*Mt._l01_a*Mt._l12_a+Mt._l12_2a,_n=3*Mt._l01_a*(Mt._l01_a+Mt._l12_a);vi=(vi*Li-Mt._x0*Mt._l12_2a+Mt._x2*Mt._l01_2a)/_n,hn=(hn*Li-Mt._y0*Mt._l12_2a+Mt._y2*Mt._l01_2a)/_n}if(Mt._l23_a>c){var ya=2*Mt._l23_2a+3*Mt._l23_a*Mt._l12_a+Mt._l12_2a,Jn=3*Mt._l23_a*(Mt._l23_a+Mt._l12_a);An=(An*ya+Mt._x1*Mt._l23_2a-kr*Mt._l12_2a)/Jn,Mn=(Mn*ya+Mt._y1*Mt._l23_2a-Jr*Mt._l12_2a)/Jn}Mt._context.bezierCurveTo(vi,hn,An,Mn,Mt._x2,Mt._y2)}function ar(Mt,kr){this._context=Mt,this._alpha=kr}ar.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var vr=function Mt(kr){function Jr(vi){return kr?new ar(vi,kr):new tt(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ii(Mt,kr){this._context=Mt,this._alpha=kr}ii.prototype={areaStart:er,areaEnd:er,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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=Mt,this._y3=kr;break;case 1:this._point=2,this._context.moveTo(this._x4=Mt,this._y4=kr);break;case 2:this._point=3,this._x5=Mt,this._y5=kr;break;default:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var pi=function Mt(kr){function Jr(vi){return kr?new ii(vi,kr):new Ie(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function $r(Mt,kr){this._context=Mt,this._alpha=kr}$r.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(Mt,kr){if(Mt=+Mt,kr=+kr,this._point){var Jr=this._x2-Mt,vi=this._y2-kr;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Jr*Jr+vi*vi,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:ir(this,Mt,kr);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=Mt,this._y0=this._y1,this._y1=this._y2,this._y2=kr}};var di=function Mt(kr){function Jr(vi){return kr?new $r(vi,kr):new ke(vi,0)}return Jr.alpha=function(vi){return Mt(+vi)},Jr}(.5);function ji(Mt){this._context=Mt}ji.prototype={areaStart:er,areaEnd:er,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(Mt,kr){Mt=+Mt,kr=+kr,this._point?this._context.lineTo(Mt,kr):(this._point=1,this._context.moveTo(Mt,kr))}};function In(Mt){return new ji(Mt)}function wi(Mt){return Mt<0?-1:1}function On(Mt,kr,Jr){var vi=Mt._x1-Mt._x0,hn=kr-Mt._x1,An=(Mt._y1-Mt._y0)/(vi||hn<0&&-0),Mn=(Jr-Mt._y1)/(hn||vi<0&&-0),Li=(An*hn+Mn*vi)/(vi+hn);return(wi(An)+wi(Mn))*Math.min(Math.abs(An),Math.abs(Mn),.5*Math.abs(Li))||0}function qn(Mt,kr){var Jr=Mt._x1-Mt._x0;return Jr?(3*(Mt._y1-Mt._y0)/Jr-kr)/2:kr}function Fn(Mt,kr,Jr){var vi=Mt._x0,hn=Mt._y0,An=Mt._x1,Mn=Mt._y1,Li=(An-vi)/3;Mt._context.bezierCurveTo(vi+Li,hn+Li*kr,An-Li,Mn-Li*Jr,An,Mn)}function ra(Mt){this._context=Mt}ra.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:Fn(this,this._t0,qn(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(Mt,kr){var Jr=NaN;if(Mt=+Mt,kr=+kr,!(Mt===this._x1&&kr===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;break;case 2:this._point=3,Fn(this,qn(this,Jr=On(this,Mt,kr)),Jr);break;default:Fn(this,this._t0,Jr=On(this,Mt,kr));break}this._x0=this._x1,this._x1=Mt,this._y0=this._y1,this._y1=kr,this._t0=Jr}}};function la(Mt){this._context=new Ut(Mt)}(la.prototype=Object.create(ra.prototype)).point=function(Mt,kr){ra.prototype.point.call(this,kr,Mt)};function Ut(Mt){this._context=Mt}Ut.prototype={moveTo:function(Mt,kr){this._context.moveTo(kr,Mt)},closePath:function(){this._context.closePath()},lineTo:function(Mt,kr){this._context.lineTo(kr,Mt)},bezierCurveTo:function(Mt,kr,Jr,vi,hn,An){this._context.bezierCurveTo(kr,Mt,vi,Jr,An,hn)}};function wt(Mt){return new ra(Mt)}function rr(Mt){return new la(Mt)}function nr(Mt){this._context=Mt}nr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var Mt=this._x,kr=this._y,Jr=Mt.length;if(Jr)if(this._line?this._context.lineTo(Mt[0],kr[0]):this._context.moveTo(Mt[0],kr[0]),Jr===2)this._context.lineTo(Mt[1],kr[1]);else for(var vi=Er(Mt),hn=Er(kr),An=0,Mn=1;Mn=0;--kr)hn[kr]=(Mn[kr]-hn[kr+1])/An[kr];for(An[Jr-1]=(Mt[Jr]+hn[Jr-1])/2,kr=0;kr=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(Mt,kr){switch(Mt=+Mt,kr=+kr,this._point){case 0:this._point=1,this._line?this._context.lineTo(Mt,kr):this._context.moveTo(Mt,kr);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,kr),this._context.lineTo(Mt,kr);else{var Jr=this._x*(1-this._t)+Mt*this._t;this._context.lineTo(Jr,this._y),this._context.lineTo(Jr,kr)}break}}this._x=Mt,this._y=kr}};function Qr(Mt){return new ri(Mt,.5)}function Oi(Mt){return new ri(Mt,0)}function $i(Mt){return new ri(Mt,1)}function tn(Mt,kr){if((Mn=Mt.length)>1)for(var Jr=1,vi,hn,An=Mt[kr[0]],Mn,Li=An.length;Jr=0;)Jr[kr]=kr;return Jr}function yn(Mt,kr){return Mt[kr]}function Sn(){var Mt=r([]),kr=fn,Jr=tn,vi=yn;function hn(An){var Mn=Mt.apply(this,arguments),Li,_n=An.length,ya=Mn.length,Jn=new Array(ya),Ma;for(Li=0;Li0){for(var Jr,vi,hn=0,An=Mt[0].length,Mn;hn0)for(var Jr,vi=0,hn,An,Mn,Li,_n,ya=Mt[kr[0]].length;vi0?(hn[0]=Mn,hn[1]=Mn+=An):An<0?(hn[1]=Li,hn[0]=Li+=An):(hn[0]=0,hn[1]=An)}function ma(Mt,kr){if((hn=Mt.length)>0){for(var Jr=0,vi=Mt[kr[0]],hn,An=vi.length;Jr0)||!((An=(hn=Mt[kr[0]]).length)>0))){for(var Jr=0,vi=1,hn,An,Mn;viAn&&(An=hn,Jr=kr);return Jr}function da(Mt){var kr=Mt.map(Wn);return fn(Mt).sort(function(Jr,vi){return kr[Jr]-kr[vi]})}function Wn(Mt){for(var kr=0,Jr=-1,vi=Mt.length,hn;++Jr{(function(e,t){typeof A7==\"object\"&&typeof NWe!=\"undefined\"?t(A7,nk(),y7(),HJ()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3)})(A7,function(e,t,r,n){\"use strict\";function i(g){return g.target.depth}function a(g){return g.depth}function o(g,P){return P-1-g.height}function s(g,P){return g.sourceLinks.length?g.depth:P-1}function l(g){return g.targetLinks.length?g.depth:g.sourceLinks.length?t.min(g.sourceLinks,i)-1:0}function u(g){return function(){return g}}function c(g,P){return h(g.source,P.source)||g.index-P.index}function f(g,P){return h(g.target,P.target)||g.index-P.index}function h(g,P){return g.y0-P.y0}function d(g){return g.value}function v(g){return(g.y0+g.y1)/2}function _(g){return v(g.source)*g.value}function b(g){return v(g.target)*g.value}function p(g){return g.index}function k(g){return g.nodes}function E(g){return g.links}function S(g,P){var T=g.get(P);if(!T)throw new Error(\"missing: \"+P);return T}var L=function(){var g=0,P=0,T=1,z=1,O=24,V=8,G=p,Z=s,H=k,N=E,j=32,re=2/3;function oe(){var Se={nodes:H.apply(null,arguments),links:N.apply(null,arguments)};return _e(Se),Ee(Se),Ce(Se),me(Se,j),ie(Se),Se}oe.update=function(Se){return ie(Se),Se},oe.nodeId=function(Se){return arguments.length?(G=typeof Se==\"function\"?Se:u(Se),oe):G},oe.nodeAlign=function(Se){return arguments.length?(Z=typeof Se==\"function\"?Se:u(Se),oe):Z},oe.nodeWidth=function(Se){return arguments.length?(O=+Se,oe):O},oe.nodePadding=function(Se){return arguments.length?(V=+Se,oe):V},oe.nodes=function(Se){return arguments.length?(H=typeof Se==\"function\"?Se:u(Se),oe):H},oe.links=function(Se){return arguments.length?(N=typeof Se==\"function\"?Se:u(Se),oe):N},oe.size=function(Se){return arguments.length?(g=P=0,T=+Se[0],z=+Se[1],oe):[T-g,z-P]},oe.extent=function(Se){return arguments.length?(g=+Se[0][0],T=+Se[1][0],P=+Se[0][1],z=+Se[1][1],oe):[[g,P],[T,z]]},oe.iterations=function(Se){return arguments.length?(j=+Se,oe):j};function _e(Se){Se.nodes.forEach(function(Ae,Fe){Ae.index=Fe,Ae.sourceLinks=[],Ae.targetLinks=[]});var Le=r.map(Se.nodes,G);Se.links.forEach(function(Ae,Fe){Ae.index=Fe;var Pe=Ae.source,ge=Ae.target;typeof Pe!=\"object\"&&(Pe=Ae.source=S(Le,Pe)),typeof ge!=\"object\"&&(ge=Ae.target=S(Le,ge)),Pe.sourceLinks.push(Ae),ge.targetLinks.push(Ae)})}function Ee(Se){Se.nodes.forEach(function(Le){Le.value=Math.max(t.sum(Le.sourceLinks,d),t.sum(Le.targetLinks,d))})}function Ce(Se){var Le,Ae,Fe;for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.depth=Fe,ge.sourceLinks.forEach(function(Re){Ae.indexOf(Re.target)<0&&Ae.push(Re.target)})});for(Le=Se.nodes,Ae=[],Fe=0;Le.length;++Fe,Le=Ae,Ae=[])Le.forEach(function(ge){ge.height=Fe,ge.targetLinks.forEach(function(Re){Ae.indexOf(Re.source)<0&&Ae.push(Re.source)})});var Pe=(T-g-O)/(Fe-1);Se.nodes.forEach(function(ge){ge.x1=(ge.x0=g+Math.max(0,Math.min(Fe-1,Math.floor(Z.call(null,ge,Fe))))*Pe)+O})}function me(Se){var Le=r.nest().key(function(Ze){return Ze.x0}).sortKeys(t.ascending).entries(Se.nodes).map(function(Ze){return Ze.values});Pe(),ce();for(var Ae=1,Fe=j;Fe>0;--Fe)Re(Ae*=.99),ce(),ge(Ae),ce();function Pe(){var Ze=t.max(Le,function(Zt){return Zt.length}),ut=re*(z-P)/(Ze-1);V>ut&&(V=ut);var pt=t.min(Le,function(Zt){return(z-P-(Zt.length-1)*V)/t.sum(Zt,d)});Le.forEach(function(Zt){Zt.forEach(function(st,lt){st.y1=(st.y0=lt)+st.value*pt})}),Se.links.forEach(function(Zt){Zt.width=Zt.value*pt})}function ge(Ze){Le.forEach(function(ut){ut.forEach(function(pt){if(pt.targetLinks.length){var Zt=(t.sum(pt.targetLinks,_)/t.sum(pt.targetLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function Re(Ze){Le.slice().reverse().forEach(function(ut){ut.forEach(function(pt){if(pt.sourceLinks.length){var Zt=(t.sum(pt.sourceLinks,b)/t.sum(pt.sourceLinks,d)-v(pt))*Ze;pt.y0+=Zt,pt.y1+=Zt}})})}function ce(){Le.forEach(function(Ze){var ut,pt,Zt=P,st=Ze.length,lt;for(Ze.sort(h),lt=0;lt0&&(ut.y0+=pt,ut.y1+=pt),Zt=ut.y1+V;if(pt=Zt-V-z,pt>0)for(Zt=ut.y0-=pt,ut.y1-=pt,lt=st-2;lt>=0;--lt)ut=Ze[lt],pt=ut.y1+V-Zt,pt>0&&(ut.y0-=pt,ut.y1-=pt),Zt=ut.y0})}}function ie(Se){Se.nodes.forEach(function(Le){Le.sourceLinks.sort(f),Le.targetLinks.sort(c)}),Se.nodes.forEach(function(Le){var Ae=Le.y0,Fe=Ae;Le.sourceLinks.forEach(function(Pe){Pe.y0=Ae+Pe.width/2,Ae+=Pe.width}),Le.targetLinks.forEach(function(Pe){Pe.y1=Fe+Pe.width/2,Fe+=Pe.width})})}return oe};function x(g){return[g.source.x1,g.y0]}function C(g){return[g.target.x0,g.y1]}var M=function(){return n.linkHorizontal().source(x).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 GWe=ye((Qbr,VWe)=>{var FZt=GJ();VWe.exports=function(t,r){var n=[],i=[],a=[],o={},s=[],l;function u(E){a[E]=!1,o.hasOwnProperty(E)&&Object.keys(o[E]).forEach(function(S){delete o[E][S],a[S]&&u(S)})}function c(E){var S=!1;i.push(E),a[E]=!0;var L,x;for(L=0;L=E})}function d(E){h(E);for(var S=t,L=FZt(S),x=L.components.filter(function(O){return O.length>1}),C=1/0,M,g=0;g{(function(e,t){typeof S7==\"object\"&&typeof HWe!=\"undefined\"?t(S7,nk(),y7(),HJ(),GWe()):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,null)})(S7,function(e,t,r,n,i){\"use strict\";i=i&&i.hasOwnProperty(\"default\")?i.default:i;function a(st){return st.target.depth}function o(st){return st.depth}function s(st,lt){return lt-1-st.height}function l(st,lt){return st.sourceLinks.length?st.depth:lt-1}function u(st){return st.targetLinks.length?st.depth:st.sourceLinks.length?t.min(st.sourceLinks,a)-1:0}function c(st){return function(){return st}}var f=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(st){return typeof st}:function(st){return st&&typeof Symbol==\"function\"&&st.constructor===Symbol&&st!==Symbol.prototype?\"symbol\":typeof st};function h(st,lt){return v(st.source,lt.source)||st.index-lt.index}function d(st,lt){return v(st.target,lt.target)||st.index-lt.index}function v(st,lt){return st.partOfCycle===lt.partOfCycle?st.y0-lt.y0:st.circularLinkType===\"top\"||lt.circularLinkType===\"bottom\"?-1:1}function _(st){return st.value}function b(st){return(st.y0+st.y1)/2}function p(st){return b(st.source)}function k(st){return b(st.target)}function E(st){return st.index}function S(st){return st.nodes}function L(st){return st.links}function x(st,lt){var Gt=st.get(lt);if(!Gt)throw new Error(\"missing: \"+lt);return Gt}function C(st,lt){return lt(st)}var M=25,g=10,P=.3;function T(){var st=0,lt=0,Gt=1,Nt=1,Jt=24,sr,wr=E,cr=l,$e=S,St=L,Qt=32,Vt=2,_t,It=null;function mt(){var dt={nodes:$e.apply(null,arguments),links:St.apply(null,arguments)};er(dt),z(dt,wr,It),lr(dt),ti(dt),O(dt,wr),Br(dt,Qt,wr),Vr(dt);for(var Ge=4,Je=0;Je0?Ge+M+g:Ge,Je=Je>0?Je+M+g:Je,je=je>0?je+M+g:je,tt=tt>0?tt+M+g:tt,{top:Ge,bottom:Je,left:tt,right:je}}function Lr(dt,Ge){var Je=t.max(dt.nodes,function(vt){return vt.column}),je=Gt-st,tt=Nt-lt,xt=je+Ge.right+Ge.left,Ie=tt+Ge.top+Ge.bottom,xe=je/xt,ke=tt/Ie;return st=st*xe+Ge.left,Gt=Ge.right==0?Gt:Gt*xe,lt=lt*ke+Ge.top,Nt=Nt*ke,dt.nodes.forEach(function(vt){vt.x0=st+vt.column*((Gt-st-Jt)/Je),vt.x1=vt.x0+Jt}),ke}function ti(dt){var Ge,Je,je;for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.depth=je,tt.sourceLinks.forEach(function(xt){Je.indexOf(xt.target)<0&&!xt.circular&&Je.push(xt.target)})});for(Ge=dt.nodes,Je=[],je=0;Ge.length;++je,Ge=Je,Je=[])Ge.forEach(function(tt){tt.height=je,tt.targetLinks.forEach(function(xt){Je.indexOf(xt.source)<0&&!xt.circular&&Je.push(xt.source)})});dt.nodes.forEach(function(tt){tt.column=Math.floor(cr.call(null,tt,je))})}function Br(dt,Ge,Je){var je=r.nest().key(function(vt){return vt.column}).sortKeys(t.ascending).entries(dt.nodes).map(function(vt){return vt.values});Ie(Je),ke();for(var tt=1,xt=Ge;xt>0;--xt)xe(tt*=.99,Je),ke();function Ie(vt){if(_t){var ir=1/0;je.forEach(function(pi){var $r=Nt*_t/(pi.length+1);ir=$r0))if(pi==0&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else if(pi==ar-1&&ii==1)di=$r.y1-$r.y0,$r.y0=Nt/2-di/2,$r.y1=Nt/2+di/2;else{var ji=0,In=t.mean($r.sourceLinks,k),wi=t.mean($r.targetLinks,p);In&&wi?ji=(In+wi)/2:ji=In||wi;var On=(ji-b($r))*vt;$r.y0+=On,$r.y1+=On}})})}function ke(){je.forEach(function(vt){var ir,ar,vr=lt,ii=vt.length,pi;for(vt.sort(v),pi=0;pi0&&(ir.y0+=ar,ir.y1+=ar),vr=ir.y1+sr;if(ar=vr-sr-Nt,ar>0)for(vr=ir.y0-=ar,ir.y1-=ar,pi=ii-2;pi>=0;--pi)ir=vt[pi],ar=ir.y1+sr-vr,ar>0&&(ir.y0-=ar,ir.y1-=ar),vr=ir.y0})}}function Vr(dt){dt.nodes.forEach(function(Ge){Ge.sourceLinks.sort(d),Ge.targetLinks.sort(h)}),dt.nodes.forEach(function(Ge){var Je=Ge.y0,je=Je,tt=Ge.y1,xt=tt;Ge.sourceLinks.forEach(function(Ie){Ie.circular?(Ie.y0=tt-Ie.width/2,tt=tt-Ie.width):(Ie.y0=Je+Ie.width/2,Je+=Ie.width)}),Ge.targetLinks.forEach(function(Ie){Ie.circular?(Ie.y1=xt-Ie.width/2,xt=xt-Ie.width):(Ie.y1=je+Ie.width/2,je+=Ie.width)})})}return mt}function z(st,lt,Gt){var Nt=0;if(Gt===null){for(var Jt=[],sr=0;srlt.source.column)}function Z(st,lt){var Gt=0;st.sourceLinks.forEach(function(Jt){Gt=Jt.circular&&!pt(Jt,lt)?Gt+1:Gt});var Nt=0;return st.targetLinks.forEach(function(Jt){Nt=Jt.circular&&!pt(Jt,lt)?Nt+1:Nt}),Gt+Nt}function H(st){var lt=st.source.sourceLinks,Gt=0;lt.forEach(function(sr){Gt=sr.circular?Gt+1:Gt});var Nt=st.target.targetLinks,Jt=0;return Nt.forEach(function(sr){Jt=sr.circular?Jt+1:Jt}),!(Gt>1||Jt>1)}function N(st,lt,Gt){return st.sort(oe),st.forEach(function(Nt,Jt){var sr=0;if(pt(Nt,Gt)&&H(Nt))Nt.circularPathData.verticalBuffer=sr+Nt.width/2;else{var wr=0;for(wr;wrsr?cr:sr}Nt.circularPathData.verticalBuffer=sr+Nt.width/2}}),st}function j(st,lt,Gt,Nt){var Jt=5,sr=t.min(st.links,function($e){return $e.source.y0});st.links.forEach(function($e){$e.circular&&($e.circularPathData={})});var wr=st.links.filter(function($e){return $e.circularLinkType==\"top\"});N(wr,lt,Nt);var cr=st.links.filter(function($e){return $e.circularLinkType==\"bottom\"});N(cr,lt,Nt),st.links.forEach(function($e){if($e.circular){if($e.circularPathData.arcRadius=$e.width+g,$e.circularPathData.leftNodeBuffer=Jt,$e.circularPathData.rightNodeBuffer=Jt,$e.circularPathData.sourceWidth=$e.source.x1-$e.source.x0,$e.circularPathData.sourceX=$e.source.x0+$e.circularPathData.sourceWidth,$e.circularPathData.targetX=$e.target.x0,$e.circularPathData.sourceY=$e.y0,$e.circularPathData.targetY=$e.y1,pt($e,Nt)&&H($e))$e.circularPathData.leftSmallArcRadius=g+$e.width/2,$e.circularPathData.leftLargeArcRadius=g+$e.width/2,$e.circularPathData.rightSmallArcRadius=g+$e.width/2,$e.circularPathData.rightLargeArcRadius=g+$e.width/2,$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=$e.source.y1+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=$e.source.y0-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius);else{var St=$e.source.column,Qt=$e.circularLinkType,Vt=st.links.filter(function(mt){return mt.source.column==St&&mt.circularLinkType==Qt});$e.circularLinkType==\"bottom\"?Vt.sort(Ee):Vt.sort(_e);var _t=0;Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.leftSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.leftLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),St=$e.target.column,Vt=st.links.filter(function(mt){return mt.target.column==St&&mt.circularLinkType==Qt}),$e.circularLinkType==\"bottom\"?Vt.sort(me):Vt.sort(Ce),_t=0,Vt.forEach(function(mt,er){mt.circularLinkID==$e.circularLinkID&&($e.circularPathData.rightSmallArcRadius=g+$e.width/2+_t,$e.circularPathData.rightLargeArcRadius=g+$e.width/2+er*lt+_t),_t=_t+mt.width}),$e.circularLinkType==\"bottom\"?($e.circularPathData.verticalFullExtent=Math.max(Gt,$e.source.y1,$e.target.y1)+M+$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent-$e.circularPathData.rightLargeArcRadius):($e.circularPathData.verticalFullExtent=sr-M-$e.circularPathData.verticalBuffer,$e.circularPathData.verticalLeftInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.leftLargeArcRadius,$e.circularPathData.verticalRightInnerExtent=$e.circularPathData.verticalFullExtent+$e.circularPathData.rightLargeArcRadius)}$e.circularPathData.leftInnerExtent=$e.circularPathData.sourceX+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightInnerExtent=$e.circularPathData.targetX-$e.circularPathData.rightNodeBuffer,$e.circularPathData.leftFullExtent=$e.circularPathData.sourceX+$e.circularPathData.leftLargeArcRadius+$e.circularPathData.leftNodeBuffer,$e.circularPathData.rightFullExtent=$e.circularPathData.targetX-$e.circularPathData.rightLargeArcRadius-$e.circularPathData.rightNodeBuffer}if($e.circular)$e.path=re($e);else{var It=n.linkHorizontal().source(function(mt){var er=mt.source.x0+(mt.source.x1-mt.source.x0),lr=mt.y0;return[er,lr]}).target(function(mt){var er=mt.target.x0,lr=mt.y1;return[er,lr]});$e.path=It($e)}})}function re(st){var lt=\"\";return st.circularLinkType==\"top\"?lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 0 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY-st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 0 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 0 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY-st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 0 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY:lt=\"M\"+st.circularPathData.sourceX+\" \"+st.circularPathData.sourceY+\" L\"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.sourceY+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftSmallArcRadius+\" 0 0 1 \"+st.circularPathData.leftFullExtent+\" \"+(st.circularPathData.sourceY+st.circularPathData.leftSmallArcRadius)+\" L\"+st.circularPathData.leftFullExtent+\" \"+st.circularPathData.verticalLeftInnerExtent+\" A\"+st.circularPathData.leftLargeArcRadius+\" \"+st.circularPathData.leftLargeArcRadius+\" 0 0 1 \"+st.circularPathData.leftInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" L\"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.verticalFullExtent+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightLargeArcRadius+\" 0 0 1 \"+st.circularPathData.rightFullExtent+\" \"+st.circularPathData.verticalRightInnerExtent+\" L\"+st.circularPathData.rightFullExtent+\" \"+(st.circularPathData.targetY+st.circularPathData.rightSmallArcRadius)+\" A\"+st.circularPathData.rightLargeArcRadius+\" \"+st.circularPathData.rightSmallArcRadius+\" 0 0 1 \"+st.circularPathData.rightInnerExtent+\" \"+st.circularPathData.targetY+\" L\"+st.circularPathData.targetX+\" \"+st.circularPathData.targetY,lt}function oe(st,lt){return ie(st)==ie(lt)?st.circularLinkType==\"bottom\"?Ee(st,lt):_e(st,lt):ie(lt)-ie(st)}function _e(st,lt){return st.y0-lt.y0}function Ee(st,lt){return lt.y0-st.y0}function Ce(st,lt){return st.y1-lt.y1}function me(st,lt){return lt.y1-st.y1}function ie(st){return st.target.column-st.source.column}function Se(st){return st.target.x0-st.source.x1}function Le(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1+Nt:st.y1-Nt;return Jt}function Ae(st,lt){var Gt=V(st),Nt=Se(lt)/Math.tan(Gt),Jt=ut(st)==\"up\"?st.y1-Nt:st.y1+Nt;return Jt}function Fe(st,lt,Gt,Nt){st.links.forEach(function(Jt){if(!Jt.circular&&Jt.target.column-Jt.source.column>1){var sr=Jt.source.column+1,wr=Jt.target.column-1,cr=1,$e=wr-sr+1;for(cr=1;sr<=wr;sr++,cr++)st.nodes.forEach(function(St){if(St.column==sr){var Qt=cr/($e+1),Vt=Math.pow(1-Qt,3),_t=3*Qt*Math.pow(1-Qt,2),It=3*Math.pow(Qt,2)*(1-Qt),mt=Math.pow(Qt,3),er=Vt*Jt.y0+_t*Jt.y0+It*Jt.y1+mt*Jt.y1,lr=er-Jt.width/2,Tr=er+Jt.width/2,Lr;lr>St.y0&&lrSt.y0&&TrSt.y1&&ge(ti,Lr,lt,Gt)})):lrSt.y1&&(Lr=Tr-St.y0+10,St=ge(St,Lr,lt,Gt),st.nodes.forEach(function(ti){C(ti,Nt)==C(St,Nt)||ti.column!=St.column||ti.y0St.y1&&ge(ti,Lr,lt,Gt)}))}})}})}function Pe(st,lt){return st.y0>lt.y0&&st.y0lt.y0&&st.y1lt.y1}function ge(st,lt,Gt,Nt){return st.y0+lt>=Gt&&st.y1+lt<=Nt&&(st.y0=st.y0+lt,st.y1=st.y1+lt,st.targetLinks.forEach(function(Jt){Jt.y1=Jt.y1+lt}),st.sourceLinks.forEach(function(Jt){Jt.y0=Jt.y0+lt})),st}function Re(st,lt,Gt,Nt){st.nodes.forEach(function(Jt){Nt&&Jt.y+(Jt.y1-Jt.y0)>lt&&(Jt.y=Jt.y-(Jt.y+(Jt.y1-Jt.y0)-lt));var sr=st.links.filter(function($e){return C($e.source,Gt)==C(Jt,Gt)}),wr=sr.length;wr>1&&sr.sort(function($e,St){if(!$e.circular&&!St.circular){if($e.target.column==St.target.column)return $e.y1-St.y1;if(Ze($e,St)){if($e.target.column>St.target.column){var Qt=Ae(St,$e);return $e.y1-Qt}if(St.target.column>$e.target.column){var Vt=Ae($e,St);return Vt-St.y1}}else return $e.y1-St.y1}if($e.circular&&!St.circular)return $e.circularLinkType==\"top\"?-1:1;if(St.circular&&!$e.circular)return St.circularLinkType==\"top\"?1:-1;if($e.circular&&St.circular)return $e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"top\"?$e.target.column===St.target.column?$e.target.y1-St.target.y1:St.target.column-$e.target.column:$e.circularLinkType===St.circularLinkType&&$e.circularLinkType==\"bottom\"?$e.target.column===St.target.column?St.target.y1-$e.target.y1:$e.target.column-St.target.column:$e.circularLinkType==\"top\"?-1:1});var cr=Jt.y0;sr.forEach(function($e){$e.y0=cr+$e.width/2,cr=cr+$e.width}),sr.forEach(function($e,St){if($e.circularLinkType==\"bottom\"){var Qt=St+1,Vt=0;for(Qt;Qt1&&Jt.sort(function(cr,$e){if(!cr.circular&&!$e.circular){if(cr.source.column==$e.source.column)return cr.y0-$e.y0;if(Ze(cr,$e)){if($e.source.column0?\"up\":\"down\"}function pt(st,lt){return C(st.source,lt)==C(st.target,lt)}function Zt(st,lt,Gt){var Nt=st.nodes,Jt=st.links,sr=!1,wr=!1;if(Jt.forEach(function(_t){_t.circularLinkType==\"top\"?sr=!0:_t.circularLinkType==\"bottom\"&&(wr=!0)}),sr==!1||wr==!1){var cr=t.min(Nt,function(_t){return _t.y0}),$e=t.max(Nt,function(_t){return _t.y1}),St=$e-cr,Qt=Gt-lt,Vt=Qt/St;Nt.forEach(function(_t){var It=(_t.y1-_t.y0)*Vt;_t.y0=(_t.y0-cr)*Vt,_t.y1=_t.y0+It}),Jt.forEach(function(_t){_t.y0=(_t.y0-cr)*Vt,_t.y1=(_t.y1-cr)*Vt,_t.width=_t.width*Vt})}}e.sankeyCircular=T,e.sankeyCenter=u,e.sankeyLeft=o,e.sankeyRight=s,e.sankeyJustify=l,Object.defineProperty(e,\"__esModule\",{value:!0})})});var jJ=ye((e2r,WWe)=>{\"use strict\";WWe.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 aXe=ye((t2r,nXe)=>{\"use strict\";var XWe=zWe(),zZt=(D2(),ob(R2)).interpolateNumber,I5=Oa(),Jk=UWe(),OZt=jWe(),Nu=jJ(),R5=cd(),ow=ka(),qZt=So(),p1=Dr(),ZJ=p1.strTranslate,BZt=p1.strRotate,YJ=Jm(),$k=YJ.keyFun,M7=YJ.repeat,QWe=YJ.unwrap,ZWe=ru(),NZt=qa(),eXe=$h(),UZt=eXe.CAP_SHIFT,VZt=eXe.LINE_SPACING,GZt=3;function HZt(e,t,r){var n=QWe(t),i=n.trace,a=i.domain,o=i.orientation===\"h\",s=i.node.pad,l=i.node.thickness,u={justify:Jk.sankeyJustify,left:Jk.sankeyLeft,right:Jk.sankeyRight,center:Jk.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,_;v?_=OZt.sankeyCircular().circularLinkGap(0):_=Jk.sankey(),_.iterations(Nu.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=_();_.nodePadding()=N||(H=N-Z.y0,H>1e-6&&(Z.y0+=H,Z.y1+=H)),N=Z.y1+s})}function P(V){var G=V.map(function(_e,Ee){return{x0:_e.x0,index:Ee}}).sort(function(_e,Ee){return _e.x0-Ee.x0}),Z=[],H=-1,N,j=-1/0,re;for(p=0;pj+l&&(H+=1,N=oe.x0),j=oe.x0,Z[H]||(Z[H]=[]),Z[H].push(oe),re=N-oe.x0,oe.x0+=re,oe.x1+=re}return Z}if(i.node.x.length&&i.node.y.length){for(p=0;p0?\" 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 KJ(){var e=.5;function t(r){var n=r.linkArrowLength;if(r.link.circular)return WZt(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=zZt(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,_=\"C\"+l+\",\"+c+\" \"+u+\",\"+h+\" \"+o+\",\"+h,b=\"C\"+u+\",\"+d+\" \"+l+\",\"+f+\" \"+a+\",\"+f,p=n>0?\"L\"+(o+n)+\",\"+(h+r.link.width/2):\"\";return p+=\"L\"+o+\",\"+d,v+_+p+b+\"Z\"}return t}function XZt(e,t){var r=R5(t.color),n=Nu.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:ow.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 XJ(e){e.attr(\"transform\",function(t){return ZJ(t.node.x0.toFixed(3),t.node.y0.toFixed(3))})}function ZZt(e){e.call(XJ)}function tXe(e,t){e.call(ZZt),t.attr(\"d\",KJ())}function YWe(e){e.attr(\"width\",function(t){return t.node.x1-t.node.x0}).attr(\"height\",function(t){return t.visibleHeight})}function WJ(e){return e.link.width>1||e.linkLineWidth>0}function KWe(e){var t=ZJ(e.translateX,e.translateY);return t+(e.horizontal?\"matrix(1 0 0 1 0 0)\":\"matrix(0 1 1 0 0 0)\")}function JWe(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 YZt(e,t,r,n){var i=I5.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,$We(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):KZt(e,o,a,n),JZt(e,t,a,o,n)}}).on(\"drag\",function(a){if(a.arrangement!==\"fixed\"){var o=I5.event.x,s=I5.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),$We(a.node),a.arrangement!==\"snap\"&&(a.sankey.update(a.graph),tXe(e.filter(iXe(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,rXe(r,i)}})}function $Zt(e,t,r,n){return function(){for(var a=0,o=0;o0&&n.forceLayouts[t].alpha(0)}}function rXe(e,t){for(var r=[],n=[],i=0;i{\"use strict\";var Zv=Oa(),$J=Dr(),E7=$J.numberFormat,rYt=aXe(),D5=vf(),iYt=ka(),Sx=jJ().cn,Qk=$J._;function oXe(e){return e!==\"\"}function F5(e,t){return e.filter(function(r){return r.key===t.traceId})}function sXe(e,t){Zv.select(e).select(\"path\").style(\"fill-opacity\",t),Zv.select(e).select(\"rect\").style(\"fill-opacity\",t)}function lXe(e){Zv.select(e).select(\"text.name\").style(\"fill\",\"black\")}function uXe(e){return function(t){return e.node.sourceLinks.indexOf(t.link)!==-1||e.node.targetLinks.indexOf(t.link)!==-1}}function cXe(e){return function(t){return t.node.sourceLinks.indexOf(e.link)!==-1||t.node.targetLinks.indexOf(e.link)!==-1}}function fXe(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(hXe.bind(0,t,r,!1))}function JJ(e,t,r){t&&r&&F5(r,t).selectAll(\".\"+Sx.sankeyLink).filter(uXe(t)).call(dXe.bind(0,t,r,!1))}function hXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(\".\"+Sx.sankeyNode).filter(cXe(e)).call(fXe)}function dXe(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!==\"\"&&F5(t,e).selectAll(\".\"+Sx.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&&F5(t,e).selectAll(Sx.sankeyNode).filter(cXe(e)).call(JJ)}function kf(e,t){var r=e.hoverlabel||{},n=$J.nestedProperty(r,t).get();return Array.isArray(n)?!1:n}vXe.exports=function(t,r){for(var n=t._fullLayout,i=n._paper,a=n._size,o=0;o\"),color:kf(C,\"bgcolor\")||iYt.addOpacity(z.color,1),borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:Zv.event.x\"),color:kf(C,\"bgcolor\")||x.tinyColorHue,borderColor:kf(C,\"bordercolor\"),fontFamily:kf(C,\"font.family\"),fontSize:kf(C,\"font.size\"),fontColor:kf(C,\"font.color\"),fontWeight:kf(C,\"font.weight\"),fontStyle:kf(C,\"font.style\"),fontVariant:kf(C,\"font.variant\"),fontTextcase:kf(C,\"font.textcase\"),fontLineposition:kf(C,\"font.lineposition\"),fontShadow:kf(C,\"font.shadow\"),nameLength:kf(C,\"namelength\"),textAlign:kf(C,\"align\"),idealAlign:\"left\",hovertemplate:C.hovertemplate,hovertemplateLabels:V,eventData:[x.node]},{container:n._hoverlayer.node(),outerContainer:n._paper.node(),gd:t});sXe(H,.85),lXe(H)}}},S=function(L,x,C){t._fullLayout.hovermode!==!1&&(Zv.select(L).call(JJ,x,C),x.node.trace.node.hoverinfo!==\"skip\"&&(x.node.fullData=x.node.trace,t.emit(\"plotly_unhover\",{event:Zv.event,points:[x.node]})),D5.loneUnhover(n._hoverlayer.node()))};rYt(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:_,unhover:b,select:l},nodeEvents:{hover:k,follow:E,unhover:S,select:p}})}});var pXe=ye(sw=>{\"use strict\";var nYt=mc().overrideAll,aYt=Id().getModuleCalcData,oYt=QJ(),sYt=B1(),lYt=Ag(),uYt=yv(),cYt=Of().prepSelect,e$=Dr(),fYt=qa(),k7=\"sankey\";sw.name=k7;sw.baseLayoutAttrOverrides=nYt({hoverlabel:sYt.hoverlabel},\"plot\",\"nested\");sw.plot=function(e){var t=aYt(e.calcdata,k7)[0];oYt(e,t),sw.updateFx(e)};sw.clean=function(e,t,r,n){var i=n._has&&n._has(k7),a=t._has&&t._has(k7);i&&!a&&(n._paperdiv.selectAll(\".sankey\").remove(),n._paperdiv.selectAll(\".bgsankey\").remove())};sw.updateFx=function(e){for(var t=0;t{\"use strict\";gXe.exports=function(t,r){for(var n=t.cd,i=[],a=n[0].trace,o=a._sankey.graph.nodes,s=0;s{\"use strict\";yXe.exports={attributes:VJ(),supplyDefaults:wWe(),calc:EWe(),plot:QJ(),moduleType:\"trace\",name:\"sankey\",basePlotModule:pXe(),selectPoints:mXe(),categories:[\"noOpacity\"],meta:{}}});var bXe=ye((o2r,xXe)=>{\"use strict\";xXe.exports=_Xe()});var TXe=ye(z5=>{\"use strict\";var wXe=Mc();z5.name=\"indicator\";z5.plot=function(e,t,r,n){wXe.plotBasePlot(z5.name,e,t,r,n)};z5.clean=function(e,t,r,n){wXe.cleanBasePlot(z5.name,e,t,r,n)}});var r$=ye((l2r,CXe)=>{\"use strict\";var Mx=Ao().extendFlat,SXe=Ao().extendDeep,dYt=mc().overrideAll,MXe=ec(),EXe=Lh(),vYt=Cc().attributes,Bf=Rd(),pYt=vl().templatedArray,C7=WT(),AXe=df().descriptionOnlyNumbers,t$=MXe({editType:\"plot\",colorEditType:\"plot\"}),eC={color:{valType:\"color\",editType:\"plot\"},line:{color:{valType:\"color\",dflt:EXe.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\"},kXe={valType:\"info_array\",items:[{valType:\"number\",editType:\"plot\"},{valType:\"number\",editType:\"plot\"}],editType:\"plot\"},gYt=pYt(\"step\",SXe({},eC,{range:kXe}));CXe.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:vYt({name:\"indicator\",trace:!0,editType:\"calc\"}),title:{text:{valType:\"string\",editType:\"plot\"},align:{valType:\"enumerated\",values:[\"left\",\"center\",\"right\"],editType:\"plot\"},font:Mx({},t$,{}),editType:\"plot\"},number:{valueformat:{valType:\"string\",dflt:\"\",editType:\"plot\",description:AXe(\"value\")},font:Mx({},t$,{}),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:AXe(\"value\")},increasing:{symbol:{valType:\"string\",dflt:C7.INCREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.INCREASING.COLOR,editType:\"plot\"},editType:\"plot\"},decreasing:{symbol:{valType:\"string\",dflt:C7.DECREASING.SYMBOL,editType:\"plot\"},color:{valType:\"color\",dflt:C7.DECREASING.COLOR,editType:\"plot\"},editType:\"plot\"},font:Mx({},t$,{}),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:SXe({},eC,{color:{dflt:\"green\"}}),bgcolor:{valType:\"color\",editType:\"plot\"},bordercolor:{valType:\"color\",dflt:EXe.defaultLine,editType:\"plot\"},borderwidth:{valType:\"number\",min:0,dflt:1,editType:\"plot\"},axis:dYt({range:kXe,visible:Mx({},Bf.visible,{dflt:!0}),tickmode:Bf.minor.tickmode,nticks:Bf.nticks,tick0:Bf.tick0,dtick:Bf.dtick,tickvals:Bf.tickvals,ticktext:Bf.ticktext,ticks:Mx({},Bf.ticks,{dflt:\"outside\"}),ticklen:Bf.ticklen,tickwidth:Bf.tickwidth,tickcolor:Bf.tickcolor,ticklabelstep:Bf.ticklabelstep,showticklabels:Bf.showticklabels,labelalias:Bf.labelalias,tickfont:MXe({}),tickangle:Bf.tickangle,tickformat:Bf.tickformat,tickformatstops:Bf.tickformatstops,tickprefix:Bf.tickprefix,showtickprefix:Bf.showtickprefix,ticksuffix:Bf.ticksuffix,showticksuffix:Bf.showticksuffix,separatethousands:Bf.separatethousands,exponentformat:Bf.exponentformat,minexponent:Bf.minexponent,showexponent:Bf.showexponent,editType:\"plot\"},\"plot\"),steps:gYt,threshold:{line:{color:Mx({},eC.line.color,{}),width:Mx({},eC.line.width,{dflt:1}),editType:\"plot\"},thickness:Mx({},eC.thickness,{dflt:.85}),value:{valType:\"number\",editType:\"calc\",dflt:!1},editType:\"plot\"},editType:\"plot\"}}});var i$=ye((u2r,LXe)=>{\"use strict\";LXe.exports={defaultNumberFontSize:80,bulletNumberDomainSize:.25,bulletPadding:.025,innerRadius:.75,valueThickness:.5,titlePadding:5,horizontalPadding:10}});var RXe=ye((c2r,IXe)=>{\"use strict\";var ty=Dr(),P7=r$(),mYt=Cc().defaults,PXe=vl(),yYt=Yd(),L7=i$(),_Yt=bb(),xYt=S3(),bYt=e_(),wYt=t_();function TYt(e,t,r,n){function i(x,C){return ty.coerce(e,t,P7,x,C)}mYt(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=ty.extendFlat({},n.font);l.size=void 0,ty.coerceFont(i,\"number.font\",l),t.number.font.size===void 0&&(t.number.font.size=L7.defaultNumberFontSize,o[0]=!0),i(\"number.prefix\"),i(\"number.suffix\"),s=t.number.font.size}var u;if(t._hasDelta){var c=ty.extendFlat({},n.font);c.size=void 0,ty.coerceFont(i,\"delta.font\",c),t.delta.font.size===void 0&&(t.delta.font.size=(t._hasNumber?.5:1)*(s||L7.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=ty.extendFlat({},n.font);f.size=.25*(s||u||L7.defaultNumberFontSize),ty.coerceFont(i,\"title.font\",f),i(\"title.text\");var h,d,v,_;function b(x,C){return ty.coerce(h,d,P7.gauge,x,C)}function p(x,C){return ty.coerce(v,_,P7.gauge.axis,x,C)}if(t._hasGauge){h=e.gauge,h||(h={}),d=PXe.newContainer(t,\"gauge\"),b(\"shape\");var k=t._isBullet=t.gauge.shape===\"bullet\";k||i(\"title.align\",\"center\");var E=t._isAngular=t.gauge.shape===\"angular\";E||i(\"align\",\"center\"),b(\"bgcolor\",n.paper_bgcolor),b(\"borderwidth\"),b(\"bordercolor\"),b(\"bar.color\"),b(\"bar.line.color\"),b(\"bar.line.width\");var S=L7.valueThickness*(t.gauge.shape===\"bullet\"?.5:1);b(\"bar.thickness\",S),yYt(h,d,{name:\"steps\",handleItemDefaults:AYt}),b(\"threshold.value\"),b(\"threshold.thickness\"),b(\"threshold.line.width\"),b(\"threshold.line.color\"),v={},h&&(v=h.axis||{}),_=PXe.newContainer(d,\"axis\"),p(\"visible\"),t._range=p(\"range\",t._range);var L={font:n.font,noAutotickangles:!0,outerTicks:!0,noTicklabelshift:!0,noTicklabelstandoff:!0};_Yt(v,_,p,\"linear\"),wYt(v,_,p,\"linear\",L),bYt(v,_,p,\"linear\",L),xYt(v,_,p,L)}else i(\"title.align\",\"center\"),i(\"align\",\"center\"),t._isAngular=t._isBullet=!1;t._length=null}function AYt(e,t){function r(n,i){return ty.coerce(e,t,P7.gauge.steps,n,i)}r(\"color\"),r(\"line.color\"),r(\"line.width\"),r(\"range\"),r(\"thickness\")}IXe.exports={supplyDefaults:TYt}});var FXe=ye((f2r,DXe)=>{\"use strict\";function SYt(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}DXe.exports={calc:SYt}});var UXe=ye((h2r,NXe)=>{\"use strict\";var hw=Oa(),MYt=(D2(),ob(R2)).interpolate,zXe=(D2(),ob(R2)).interpolateNumber,Ex=Dr(),EYt=Ex.strScale,rC=Ex.strTranslate,kYt=Ex.rad2deg,CYt=$h().MID_SHIFT,fw=So(),lw=i$(),R7=ru(),sv=ho(),LYt=r4(),PYt=lI(),IYt=Rd(),O5=ka(),n$={left:\"start\",center:\"middle\",right:\"end\"},uw={left:0,center:.5,right:1},OXe=/[yzafpn\u00b5mkMGTPEZY]/;function iC(e){return e&&e.duration>0}NXe.exports=function(t,r,n,i){var a=t._fullLayout,o;iC(n)&&i&&(o=i()),Ex.makeTraceGroups(a._indicatorlayer,r,\"trace\").each(function(s){var l=s[0],u=l.trace,c=hw.select(this),f=u._hasGauge,h=u._isAngular,d=u._isBullet,v=u.domain,_={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=_.l+_.w/2,p=_.t+_.h/2,k=Math.min(_.w/2,_.h),E=lw.innerRadius*k,S,L,x,C=u.align||\"center\";if(L=p,!f)S=_.l+uw[C]*_.w,x=function(H){return qXe(H,_.w,_.h)};else if(h&&(S=b,L=p+k/2,x=function(H){return OYt(H,.9*E)}),d){var M=lw.bulletPadding,g=1-lw.bulletNumberDomainSize+M;S=_.l+(g+(1-g)*uw[C])*_.w,x=function(H){return qXe(H,(lw.bulletNumberDomainSize-M)*_.w,_.h)}}FYt(t,c,s,{numbersX:S,numbersY:L,numbersScaler:x,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 z=c.selectAll(\"g.angular\").data(h?s:[]);z.exit().remove();var O=c.selectAll(\"g.angularaxis\").data(h?s:[]);O.exit().remove(),h&&DYt(t,c,s,{radius:k,innerRadius:E,gauge:z,layer:O,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var V=c.selectAll(\"g.bullet\").data(d?s:[]);V.exit().remove();var G=c.selectAll(\"g.bulletaxis\").data(d?s:[]);G.exit().remove(),d&&RYt(t,c,s,{gauge:V,layer:G,size:_,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var Z=c.selectAll(\"text.title\").data(s);Z.exit().remove(),Z.enter().append(\"text\").classed(\"title\",!0),Z.attr(\"text-anchor\",function(){return d?n$.right:n$[u.title.align]}).text(u.title.text).call(fw.font,u.title.font).call(R7.convertToTspans,t),Z.attr(\"transform\",function(){var H=_.l+_.w*uw[u.title.align],N,j=lw.titlePadding,re=fw.bBox(Z.node());if(f){if(h)if(u.gauge.axis.visible){var oe=fw.bBox(O.node());N=oe.top-j-re.bottom}else N=_.t+_.h/2-k/2-re.bottom-j;d&&(N=L-(re.top+re.bottom)/2,H=_.l-lw.bulletPadding*_.w)}else N=u._numbersTop-j-re.bottom;return rC(H,N)})})};function RYt(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,_,b,p;a.enter().append(\"g\").classed(\"bullet\",!0),a.attr(\"transform\",rC(u.l,u.t)),o.enter().append(\"g\").classed(\"bulletaxis\",!0).classed(\"crisp\",!0),o.selectAll(\"g.xbulletaxistick,path,text\").remove();var k=u.h,E=i.gauge.bar.thickness*k,S=c.x[0],L=c.x[0]+(c.x[1]-c.x[0])*(i._hasNumber||i._hasDelta?1-lw.bulletNumberDomainSize:1);d=tC(e,i.gauge.axis),d._id=\"xbulletaxis\",d.domain=[S,L],d.setScale(),v=sv.calcTicks(d),_=sv.makeTransTickFn(d),b=sv.getTickSigns(d)[2],p=u.t+u.h,d.visible&&(sv.drawTicks(e,d,{vals:d.ticks===\"inside\"?sv.clipEnds(d,v):v,layer:o,path:sv.makeTickPath(d,p,b),transFn:_}),sv.drawLabels(e,d,{vals:v,layer:o,transFn:_,labelFns:sv.makeLabelFns(d,p)}));function x(O){O.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)*k}).attr(\"height\",function(V){return V.thickness*k})}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(x).call(cw),M.exit().remove();var g=a.selectAll(\"g.value-bullet\").data([i.gauge.bar]);g.enter().append(\"g\").classed(\"value-bullet\",!0).append(\"rect\"),g.select(\"rect\").attr(\"height\",E).attr(\"y\",(k-E)/2).call(cw),iC(f)?g.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)))):g.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),g.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*k).attr(\"y2\",(1-(1-i.gauge.threshold.thickness)/2)*k).call(O5.stroke,i.gauge.threshold.line.color).style(\"stroke-width\",i.gauge.threshold.line.width),T.exit().remove();var z=a.selectAll(\"g.gauge-outline\").data([l]);z.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"rect\"),z.select(\"rect\").call(x).call(cw),z.exit().remove()}function DYt(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,_=Math.PI/2;function b(_e){var Ee=i.gauge.axis.range[0],Ce=i.gauge.axis.range[1],me=(_e-Ee)/(Ce-Ee)*Math.PI-_;return me<-_?-_:me>_?_:me}function p(_e){return hw.svg.arc().innerRadius((s+o)/2-_e/2*(o-s)).outerRadius((s+o)/2+_e/2*(o-s)).startAngle(-_)}function k(_e){_e.attr(\"d\",function(Ee){return p(Ee.thickness).startAngle(b(Ee.range[0])).endAngle(b(Ee.range[1]))()})}var E,S,L,x;f.enter().append(\"g\").classed(\"angular\",!0),f.attr(\"transform\",rC(c[0],c[1])),h.enter().append(\"g\").classed(\"angularaxis\",!0).classed(\"crisp\",!0),h.selectAll(\"g.xangularaxistick,path,text\").remove(),E=tC(e,i.gauge.axis),E.type=\"linear\",E.range=i.gauge.axis.range,E._id=\"xangularaxis\",E.ticklabeloverflow=\"allow\",E.setScale();var C=function(_e){return(E.range[0]-_e.x)/(E.range[1]-E.range[0])*Math.PI+Math.PI},M={},g=sv.makeLabelFns(E,0),P=g.labelStandoff;M.xFn=function(_e){var Ee=C(_e);return Math.cos(Ee)*P},M.yFn=function(_e){var Ee=C(_e),Ce=Math.sin(Ee)>0?.2:1;return-Math.sin(Ee)*(P+_e.fontSize*Ce)+Math.abs(Math.cos(Ee))*(_e.fontSize*CYt)},M.anchorFn=function(_e){var Ee=C(_e),Ce=Math.cos(Ee);return Math.abs(Ce)<.1?\"middle\":Ce>0?\"start\":\"end\"},M.heightFn=function(_e,Ee,Ce){var me=C(_e);return-.5*(1+Math.sin(me))*Ce};var T=function(_e){return rC(c[0]+o*Math.cos(_e),c[1]-o*Math.sin(_e))};L=function(_e){return T(C(_e))};var z=function(_e){var Ee=C(_e);return T(Ee)+\"rotate(\"+-kYt(Ee)+\")\"};if(S=sv.calcTicks(E),x=sv.getTickSigns(E)[2],E.visible){x=E.ticks===\"inside\"?-1:1;var O=(E.linewidth||1)/2;sv.drawTicks(e,E,{vals:S,layer:h,path:\"M\"+x*O+\",0h\"+x*E.ticklen,transFn:z}),sv.drawLabels(e,E,{vals:S,layer:h,transFn:L,labelFns:M})}var V=[l].concat(i.gauge.steps),G=f.selectAll(\"g.bg-arc\").data(V);G.enter().append(\"g\").classed(\"bg-arc\",!0).append(\"path\"),G.select(\"path\").call(k).call(cw),G.exit().remove();var Z=p(i.gauge.bar.thickness),H=f.selectAll(\"g.value-arc\").data([i.gauge.bar]);H.enter().append(\"g\").classed(\"value-arc\",!0).append(\"path\");var N=H.select(\"path\");iC(d)?(N.transition().duration(d.duration).ease(d.easing).each(\"end\",function(){v&&v()}).each(\"interrupt\",function(){v&&v()}).attrTween(\"d\",zYt(Z,b(r[0].lastY),b(r[0].y))),i._lastValue=r[0].y):N.attr(\"d\",typeof r[0].y==\"number\"?Z.endAngle(b(r[0].y)):\"M0,0Z\"),N.call(cw),H.exit().remove(),V=[];var j=i.gauge.threshold.value;(j||j===0)&&V.push({range:[j,j],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(k).call(cw),re.exit().remove();var oe=f.selectAll(\"g.gauge-outline\").data([u]);oe.enter().append(\"g\").classed(\"gauge-outline\",!0).append(\"path\"),oe.select(\"path\").call(k).call(cw),oe.exit().remove()}function FYt(e,t,r,n){var i=r[0].trace,a=n.numbersX,o=n.numbersY,s=i.align||\"center\",l=n$[s],u=n.transitionOpts,c=n.onComplete,f=Ex.ensureSingle(t,\"g\",\"numbers\"),h,d,v,_=[];i._hasNumber&&_.push(\"number\"),i._hasDelta&&(_.push(\"delta\"),i.delta.position===\"left\"&&_.reverse());var b=f.selectAll(\"text\").data(_);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 p(T,z,O,V){if(T.match(\"s\")&&O>=0!=V>=0&&!z(O).slice(-1).match(OXe)&&!z(V).slice(-1).match(OXe)){var G=T.slice().replace(\"s\",\"f\").replace(/\\d+/,function(H){return parseInt(H)-1}),Z=tC(e,{tickformat:G});return function(H){return Math.abs(H)<1?sv.tickText(Z,H).text:z(H)}}else return z}function k(){var T=tC(e,{tickformat:i.number.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(H){return sv.tickText(T,H).text},O=i.number.suffix,V=i.number.prefix,G=f.select(\"text.number\");function Z(){var H=typeof r[0].y==\"number\"?V+z(r[0].y)+O:\"-\";G.text(H).call(fw.font,i.number.font).call(R7.convertToTspans,e)}return iC(u)?G.transition().duration(u.duration).ease(u.easing).each(\"end\",function(){Z(),c&&c()}).each(\"interrupt\",function(){Z(),c&&c()}).attrTween(\"text\",function(){var H=hw.select(this),N=zXe(r[0].lastY,r[0].y);i._lastValue=r[0].y;var j=p(i.number.valueformat,z,r[0].lastY,r[0].y);return function(re){H.text(V+j(N(re))+O)}}):Z(),h=BXe(V+z(r[0].y)+O,i.number.font,l,e),G}function E(){var T=tC(e,{tickformat:i.delta.valueformat},i._range);T.setScale(),sv.prepTicks(T);var z=function(re){return sv.tickText(T,re).text},O=i.delta.suffix,V=i.delta.prefix,G=function(re){var oe=i.delta.relative?re.relativeDelta:re.delta;return oe},Z=function(re,oe){return re===0||typeof re!=\"number\"||isNaN(re)?\"-\":(re>0?i.delta.increasing.symbol:i.delta.decreasing.symbol)+V+oe(re)+O},H=function(re){return re.delta>=0?i.delta.increasing.color:i.delta.decreasing.color};i._deltaLastValue===void 0&&(i._deltaLastValue=G(r[0]));var N=f.select(\"text.delta\");N.call(fw.font,i.delta.font).call(O5.fill,H({delta:i._deltaLastValue}));function j(){N.text(Z(G(r[0]),z)).call(O5.fill,H(r[0])).call(R7.convertToTspans,e)}return iC(u)?N.transition().duration(u.duration).ease(u.easing).tween(\"text\",function(){var re=hw.select(this),oe=G(r[0]),_e=i._deltaLastValue,Ee=p(i.delta.valueformat,z,_e,oe),Ce=zXe(_e,oe);return i._deltaLastValue=oe,function(me){re.text(Z(Ce(me),Ee)),re.call(O5.fill,H({delta:Ce(me)}))}}).each(\"end\",function(){j(),c&&c()}).each(\"interrupt\",function(){j(),c&&c()}):j(),d=BXe(Z(G(r[0]),z),i.delta.font,l,e),N}var S=i.mode+i.align,L;if(i._hasDelta&&(L=E(),S+=i.delta.position+i.delta.font.size+i.delta.font.family+i.delta.valueformat,S+=i.delta.increasing.symbol+i.delta.decreasing.symbol,v=d),i._hasNumber&&(k(),S+=i.number.font.size+i.number.font.family+i.number.valueformat+i.number.suffix+i.number.prefix,v=h),i._hasDelta&&i._hasNumber){var x=[(h.left+h.right)/2,(h.top+h.bottom)/2],C=[(d.left+d.right)/2,(d.top+d.bottom)/2],M,g,P=.75*i.delta.font.size;i.delta.position===\"left\"&&(M=I7(i,\"deltaPos\",0,-1*(h.width*uw[i.align]+d.width*(1-uw[i.align])+P),S,Math.min),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"right\"&&(M=I7(i,\"deltaPos\",0,h.width*(1-uw[i.align])+d.width*uw[i.align]+P,S,Math.max),g=x[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+g),bottom:Math.max(h.bottom,d.bottom+g)}),i.delta.position===\"bottom\"&&(M=null,g=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,g=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:g})}(i._hasNumber||i._hasDelta)&&f.attr(\"transform\",function(){var T=n.numbersScaler(v);S+=T[2];var z=I7(i,\"numbersScale\",1,T[0],S,Math.min),O;i._scaleNumbers||(z=1),i._isAngular?O=o-z*v.bottom:O=o-z*(v.top+v.bottom)/2,i._numbersTop=z*v.top+O;var V=v[s];s===\"center\"&&(V=(v.left+v.right)/2);var G=a-z*V;return G=I7(i,\"numbersTranslate\",0,G,S,Math.max),rC(G,O)+EYt(z)})}function cw(e){e.each(function(t){O5.stroke(hw.select(this),t.line.color)}).each(function(t){O5.fill(hw.select(this),t.color)}).style(\"stroke-width\",function(t){return t.line.width})}function zYt(e,t,r){return function(){var n=MYt(t,r);return function(i){return e.endAngle(n(i))()}}}function tC(e,t,r){var n=e._fullLayout,i=Ex.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 Ex.coerce(i,a,IYt,l,u)}return LYt(i,a,s,o,n),PYt(i,a,s,o),a}function qXe(e,t,r){var n=Math.min(t/e.width,r/e.height);return[n,e,t+\"x\"+r]}function OYt(e,t){var r=Math.sqrt(e.width/2*(e.width/2)+e.height*e.height),n=t/r;return[n,e,t]}function BXe(e,t,r,n){var i=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\"),a=hw.select(i);return a.text(e).attr(\"x\",0).attr(\"y\",0).attr(\"text-anchor\",r).attr(\"data-unformatted\",e).call(R7.convertToTspans,n).call(fw.font,t),fw.bBox(a.node())}function I7(e,t,r,n,i,a){var o=\"_cache\"+t;e[o]&&e[o].key===i||(e[o]={key:i,value:r});var s=Ex.aggNums(a,null,[e[o].value,n],2);return e[o].value=s,s}});var GXe=ye((d2r,VXe)=>{\"use strict\";VXe.exports={moduleType:\"trace\",name:\"indicator\",basePlotModule:TXe(),categories:[\"svg\",\"noOpacity\",\"noHover\"],animatable:!0,attributes:r$(),supplyDefaults:RXe().supplyDefaults,calc:FXe().calc,plot:UXe(),meta:{}}});var jXe=ye((v2r,HXe)=>{\"use strict\";HXe.exports=GXe()});var a$=ye((g2r,YXe)=>{\"use strict\";var WXe=Ub(),D7=Ao().extendFlat,qYt=mc().overrideAll,XXe=ec(),BYt=Cc().attributes,ZXe=df().descriptionOnlyNumbers,p2r=YXe.exports=qYt({domain:BYt({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:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:28},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))},cells:{values:{valType:\"data_array\",dflt:[]},format:{valType:\"data_array\",dflt:[],description:ZXe(\"cell value\")},prefix:{valType:\"string\",arrayOk:!0,dflt:null},suffix:{valType:\"string\",arrayOk:!0,dflt:null},height:{valType:\"number\",dflt:20},align:D7({},WXe.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:D7({},XXe({arrayOk:!0}))}},\"calc\",\"from-root\")});var JXe=ye((m2r,KXe)=>{\"use strict\";var o$=Dr(),NYt=a$(),UYt=Cc().defaults;function VYt(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 GYt=Jm().wrap;$Xe.exports=function(){return GYt({})}});var s$=ye((_2r,eZe)=>{\"use strict\";eZe.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 uZe=ye((x2r,lZe)=>{\"use strict\";var tZe=s$(),u$=Ao().extendFlat,HYt=Eo(),jYt=vv().isTypedArray,F7=vv().isArrayOrTypedArray;lZe.exports=function(t,r){var n=l$(r.cells.values),i=function(g){return g.slice(r.header.values.length,g.length)},a=l$(r.header.values);a.length&&!a[0].length&&(a[0]=[\"\"],a=l$(a));var o=a.concat(i(n).map(function(){return sZe((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}):[tZe.emptyHeaderHeight],f=n.length?n[0].map(function(){return r.cells.height}):[],h=c.reduce(rZe,0),d=u-h,v=d+tZe.uplift,_=aZe(f,v),b=aZe(c,h),p=nZe(b,[]),k=nZe(_,p),E={},S=r._fullInput.columnorder;F7(S)&&(S=Array.from(S)),S=S.concat(i(n.map(function(g,P){return P})));var L=o.map(function(g,P){var T=F7(r.columnwidth)?r.columnwidth[Math.min(P,r.columnwidth.length-1)]:r.columnwidth;return HYt(T)?Number(T):1}),x=L.reduce(rZe,0);L=L.map(function(g){return g/x*l});var C=Math.max(c$(r.header.line.width),c$(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:S,groupHeight:u,rowBlocks:k,headerRowBlocks:p,scrollY:0,cells:u$({},r.cells,{values:n}),headerCells:u$({},r.header,{values:o}),gdColumns:o.map(function(g){return g[0]}),gdColumnsOriginalOrder:o.map(function(g){return g[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:o.map(function(g,P){var T=E[g];E[g]=(T||0)+1;var z=g+\"__\"+E[g];return{key:z,label:g,specIndex:P,xIndex:S[P],xScale:iZe,x:void 0,calcdata:void 0,columnWidth:L[P]}})};return M.columns.forEach(function(g){g.calcdata=M,g.x=iZe(g)}),M};function c$(e){if(F7(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=oZe(),i+=a,s=u+1,a=0);return r}function oZe(){return{firstRowIndex:null,lastRowIndex:null,rows:[]}}});var cZe=ye(f$=>{\"use strict\";var z7=Ao().extendFlat;f$.splitToPanels=function(e){var t=[0,0],r=z7({},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:z7({},e.calcdata,{cells:e.calcdata.headerCells})}),n=z7({},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=z7({},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]};f$.splitToCells=function(e){var t=WYt(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 WYt(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 b$=ye((w2r,bZe)=>{\"use strict\";var Ya=s$(),tf=Oa(),h$=Dr(),XYt=h$.numberFormat,Uu=Jm(),d$=So(),ZYt=ru(),YYt=Dr().raiseToTop,og=Dr().strTranslate,KYt=Dr().cancelTransition,JYt=uZe(),mZe=cZe(),fZe=ka();bZe.exports=function(t,r){var n=!t._context.staticPlot,i=t._fullLayout._paper.selectAll(\".\"+Ya.cn.table).data(r.map(function(k){var E=Uu.unwrap(k),S=E.trace;return JYt(t,S)}),Uu.keyFun);i.exit().remove(),i.enter().append(\"g\").classed(Ya.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(k){return k.width+k.size.l+k.size.r}).attr(\"height\",function(k){return k.height+k.size.t+k.size.b}).attr(\"transform\",function(k){return og(k.translateX,k.translateY)});var a=i.selectAll(\".\"+Ya.cn.tableControlView).data(Uu.repeat,Uu.keyFun),o=a.enter().append(\"g\").classed(Ya.cn.tableControlView,!0).style(\"box-sizing\",\"content-box\");if(n){var s=\"onwheel\"in document?\"wheel\":\"mousewheel\";o.on(\"mousemove\",function(k){a.filter(function(E){return k===E}).call(nC,t)}).on(s,function(k){if(!k.scrollbarState.wheeling){k.scrollbarState.wheeling=!0;var E=k.scrollY+tf.event.deltaY,S=q7(t,a,null,E)(k);S||(tf.event.stopPropagation(),tf.event.preventDefault()),k.scrollbarState.wheeling=!1}}).call(nC,t,!0)}a.attr(\"transform\",function(k){return og(k.size.l,k.size.t)});var l=a.selectAll(\".\"+Ya.cn.scrollBackground).data(Uu.repeat,Uu.keyFun);l.enter().append(\"rect\").classed(Ya.cn.scrollBackground,!0).attr(\"fill\",\"none\"),l.attr(\"width\",function(k){return k.width}).attr(\"height\",function(k){return k.height}),a.each(function(k){d$.setClipUrl(tf.select(this),hZe(t,k),t)});var u=a.selectAll(\".\"+Ya.cn.yColumn).data(function(k){return k.columns},Uu.keyFun);u.enter().append(\"g\").classed(Ya.cn.yColumn,!0),u.exit().remove(),u.attr(\"transform\",function(k){return og(k.x,0)}),n&&u.call(tf.behavior.drag().origin(function(k){var E=tf.select(this);return pZe(E,k,-Ya.uplift),YYt(this),k.calcdata.columnDragInProgress=!0,nC(a.filter(function(S){return k.calcdata.key===S.key}),t),k}).on(\"drag\",function(k){var E=tf.select(this),S=function(C){return(k===C?tf.event.x:C.x)+C.columnWidth/2};k.x=Math.max(-Ya.overdrag,Math.min(k.calcdata.width+Ya.overdrag-k.columnWidth,tf.event.x));var L=yZe(u).filter(function(C){return C.calcdata.key===k.calcdata.key}),x=L.sort(function(C,M){return S(C)-S(M)});x.forEach(function(C,M){C.xIndex=M,C.x=k===C?C.x:C.xScale(C)}),u.filter(function(C){return k!==C}).transition().ease(Ya.transitionEase).duration(Ya.transitionDuration).attr(\"transform\",function(C){return og(C.x,0)}),E.call(KYt).attr(\"transform\",og(k.x,-Ya.uplift))}).on(\"dragend\",function(k){var E=tf.select(this),S=k.calcdata;k.x=k.xScale(k),k.calcdata.columnDragInProgress=!1,pZe(E,k,0),sKt(t,S,S.columns.map(function(L){return L.xIndex}))})),u.each(function(k){d$.setClipUrl(tf.select(this),dZe(t,k),t)});var c=u.selectAll(\".\"+Ya.cn.columnBlock).data(mZe.splitToPanels,Uu.keyFun);c.enter().append(\"g\").classed(Ya.cn.columnBlock,!0).attr(\"id\",function(k){return k.key}),c.style(\"cursor\",function(k){return k.dragHandle?\"ew-resize\":k.calcdata.scrollbarState.barWiggleRoom?\"ns-resize\":\"default\"});var f=c.filter(lKt),h=c.filter(y$);n&&h.call(tf.behavior.drag().origin(function(k){return tf.event.stopPropagation(),k}).on(\"drag\",q7(t,a,-1)).on(\"dragend\",function(){})),v$(t,a,f,c),v$(t,a,h,c);var d=a.selectAll(\".\"+Ya.cn.scrollAreaClip).data(Uu.repeat,Uu.keyFun);d.enter().append(\"clipPath\").classed(Ya.cn.scrollAreaClip,!0).attr(\"id\",function(k){return hZe(t,k)});var v=d.selectAll(\".\"+Ya.cn.scrollAreaClipRect).data(Uu.repeat,Uu.keyFun);v.enter().append(\"rect\").classed(Ya.cn.scrollAreaClipRect,!0).attr(\"x\",-Ya.overdrag).attr(\"y\",-Ya.uplift).attr(\"fill\",\"none\"),v.attr(\"width\",function(k){return k.width+2*Ya.overdrag}).attr(\"height\",function(k){return k.height+Ya.uplift});var _=u.selectAll(\".\"+Ya.cn.columnBoundary).data(Uu.repeat,Uu.keyFun);_.enter().append(\"g\").classed(Ya.cn.columnBoundary,!0);var b=u.selectAll(\".\"+Ya.cn.columnBoundaryClippath).data(Uu.repeat,Uu.keyFun);b.enter().append(\"clipPath\").classed(Ya.cn.columnBoundaryClippath,!0),b.attr(\"id\",function(k){return dZe(t,k)});var p=b.selectAll(\".\"+Ya.cn.columnBoundaryRect).data(Uu.repeat,Uu.keyFun);p.enter().append(\"rect\").classed(Ya.cn.columnBoundaryRect,!0).attr(\"fill\",\"none\"),p.attr(\"width\",function(k){return k.columnWidth+2*O7(k)}).attr(\"height\",function(k){return k.calcdata.height+2*O7(k)+Ya.uplift}).attr(\"x\",function(k){return-O7(k)}).attr(\"y\",function(k){return-O7(k)}),_$(null,h,a)};function O7(e){return Math.ceil(e.calcdata.maxLineWidth/2)}function hZe(e,t){return\"clip\"+e._fullLayout._uid+\"_scrollAreaBottomClip_\"+t.key}function dZe(e,t){return\"clip\"+e._fullLayout._uid+\"_columnBoundaryClippath_\"+t.calcdata.key+\"_\"+t.specIndex}function yZe(e){return[].concat.apply([],e.map(function(t){return t})).map(function(t){return t.__data__})}function nC(e,t,r){function n(u){var c=u.rowBlocks;return g$(c,c.length-1)+(c.length?B7(c[c.length-1],1/0):1)}var i=e.selectAll(\".\"+Ya.cn.scrollbarKit).data(Uu.repeat,Uu.keyFun);i.enter().append(\"g\").classed(Ya.cn.scrollbarKit,!0).style(\"shape-rendering\",\"geometricPrecision\"),i.each(function(u){var c=u.scrollbarState;c.totalHeight=n(u),c.scrollableAreaHeight=u.groupHeight-p$(u),c.currentlyVisibleHeight=Math.min(c.totalHeight,c.scrollableAreaHeight),c.ratio=c.currentlyVisibleHeight/c.totalHeight,c.barLength=Math.max(c.ratio*c.currentlyVisibleHeight,Ya.goldenRatio*Ya.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+Ya.scrollbarWidth/2+Ya.scrollbarOffset;return og(c,p$(u))});var a=i.selectAll(\".\"+Ya.cn.scrollbar).data(Uu.repeat,Uu.keyFun);a.enter().append(\"g\").classed(Ya.cn.scrollbar,!0);var o=a.selectAll(\".\"+Ya.cn.scrollbarSlider).data(Uu.repeat,Uu.keyFun);o.enter().append(\"g\").classed(Ya.cn.scrollbarSlider,!0),o.attr(\"transform\",function(u){return og(0,u.scrollbarState.topY||0)});var s=o.selectAll(\".\"+Ya.cn.scrollbarGlyph).data(Uu.repeat,Uu.keyFun);s.enter().append(\"line\").classed(Ya.cn.scrollbarGlyph,!0).attr(\"stroke\",\"black\").attr(\"stroke-width\",Ya.scrollbarWidth).attr(\"stroke-linecap\",\"round\").attr(\"y1\",Ya.scrollbarWidth/2),s.attr(\"y2\",function(u){return u.scrollbarState.barLength-Ya.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(Ya.scrollbarHideDelay).duration(Ya.scrollbarHideDuration).attr(\"stroke-opacity\",0);var l=a.selectAll(\".\"+Ya.cn.scrollbarCaptureZone).data(Uu.repeat,Uu.keyFun);l.enter().append(\"line\").classed(Ya.cn.scrollbarCaptureZone,!0).attr(\"stroke\",\"white\").attr(\"stroke-opacity\",.01).attr(\"stroke-width\",Ya.scrollbarCaptureWidth).attr(\"stroke-linecap\",\"butt\").attr(\"y1\",0).on(\"mousedown\",function(u){var c=tf.event.y,f=this.getBoundingClientRect(),h=u.scrollbarState,d=c-f.top,v=tf.scale.linear().domain([0,h.scrollableAreaHeight]).range([0,h.totalHeight]).clamp(!0);h.topY<=d&&d<=h.bottomY||q7(t,e,null,v(d-h.barLength/2))(u)}).call(tf.behavior.drag().origin(function(u){return tf.event.stopPropagation(),u.scrollbarState.scrollbarScrollInProgress=!0,u}).on(\"drag\",q7(t,e)).on(\"dragend\",function(){})),l.attr(\"y2\",function(u){return u.scrollbarState.scrollableAreaHeight}),t._context.staticPlot&&(s.remove(),l.remove())}function v$(e,t,r,n){var i=$Yt(r),a=QYt(i);iKt(a);var o=eKt(a);aKt(o);var s=rKt(a),l=tKt(s);nKt(l),_Ze(l,t,n,e),x$(a)}function $Yt(e){var t=e.selectAll(\".\"+Ya.cn.columnCells).data(Uu.repeat,Uu.keyFun);return t.enter().append(\"g\").classed(Ya.cn.columnCells,!0),t.exit().remove(),t}function QYt(e){var t=e.selectAll(\".\"+Ya.cn.columnCell).data(mZe.splitToCells,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.columnCell,!0),t.exit().remove(),t}function eKt(e){var t=e.selectAll(\".\"+Ya.cn.cellRect).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"rect\").classed(Ya.cn.cellRect,!0),t}function tKt(e){var t=e.selectAll(\".\"+Ya.cn.cellText).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"text\").classed(Ya.cn.cellText,!0).style(\"cursor\",function(){return\"auto\"}).on(\"mousedown\",function(){tf.event.stopPropagation()}),t}function rKt(e){var t=e.selectAll(\".\"+Ya.cn.cellTextHolder).data(Uu.repeat,function(r){return r.keyWithinBlock});return t.enter().append(\"g\").classed(Ya.cn.cellTextHolder,!0).style(\"shape-rendering\",\"geometricPrecision\"),t}function iKt(e){e.each(function(t,r){var n=t.calcdata.cells.font,i=t.column.specIndex,a={size:Yv(n.size,i,r),color:Yv(n.color,i,r),family:Yv(n.family,i,r),weight:Yv(n.weight,i,r),style:Yv(n.style,i,r),variant:Yv(n.variant,i,r),textcase:Yv(n.textcase,i,r),lineposition:Yv(n.lineposition,i,r),shadow:Yv(n.shadow,i,r)};t.rowNumber=t.key,t.align=Yv(t.calcdata.cells.align,i,r),t.cellBorderWidth=Yv(t.calcdata.cells.line.width,i,r),t.font=a})}function nKt(e){e.each(function(t){d$.font(tf.select(this),t.font)})}function aKt(e){e.attr(\"width\",function(t){return t.column.columnWidth}).attr(\"stroke-width\",function(t){return t.cellBorderWidth}).each(function(t){var r=tf.select(this);fZe.stroke(r,Yv(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),fZe.fill(r,Yv(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}function _Ze(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=oKt(s);i.latex=f;var h=f?\"\":Yv(i.calcdata.cells.prefix,a,o)||\"\",d=f?\"\":Yv(i.calcdata.cells.suffix,a,o)||\"\",v=f?null:Yv(i.calcdata.cells.format,a,o)||null,_=h+(v?XYt(v)(i.value):i.value)+d,b;i.wrappingNeeded=!i.wrapped&&!c&&!f&&(b=vZe(_)),i.cellHeightMayIncrease=u||f||i.mayHaveMarkup||(b===void 0?vZe(_):b),i.needsConvertToTspans=i.mayHaveMarkup||i.wrappingNeeded||i.latex;var p;if(i.wrappingNeeded){var k=Ya.wrapSplitCharacter===\" \"?_.replace(/i&&n.push(a),i+=l}return n}function _$(e,t,r){var n=yZe(t)[0];if(n!==void 0){var i=n.rowBlocks,a=n.calcdata,o=g$(i,i.length),s=n.calcdata.groupHeight-p$(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),u=uKt(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=g$(c.rowBlocks,c.page)-c.scrollY;return og(0,f)}),e&&(gZe(e,r,t,u,n.prevPages,n,0),gZe(e,r,t,u,n.prevPages,n,1),nC(r,e))}}function q7(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*tf.event.dy:n;var c=s.selectAll(\".\"+Ya.cn.yColumn).selectAll(\".\"+Ya.cn.columnBlock).filter(y$);return _$(e,c,s),o.scrollY===u}}function gZe(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]});v$(e,t,l,r),i[o]=n[o]}))}function cKt(e,t,r,n){return function(){var a=tf.select(t.parentNode);a.each(function(o){var s=o.fragments;a.selectAll(\"tspan.line\").each(function(_,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*Ya.cellPad;for(o.value=\"\";u.length;)f=u.shift(),h=f.width+l,d+h>v&&(o.value+=c.join(Ya.wrapSpacer)+Ya.lineBreaker,c=[],d=0),c.push(f.text),d+=h;d&&(o.value+=c.join(Ya.wrapSpacer)),o.wrapped=!0}),a.selectAll(\"tspan.line\").remove(),_Ze(a.select(\".\"+Ya.cn.cellText),r,e,n),tf.select(t.parentNode.parentNode).call(x$)}}function fKt(e,t,r,n,i){return function(){if(!i.settledY){var o=tf.select(t.parentNode),s=m$(i),l=i.key-s.firstRowIndex,u=s.rows[l].rowHeight,c=i.cellHeightMayIncrease?t.parentNode.getBoundingClientRect().height+2*Ya.cellPad:u,f=Math.max(c,u),h=f-s.rows[l].rowHeight;h&&(s.rows[l].rowHeight=f,e.selectAll(\".\"+Ya.cn.columnCell).call(x$),_$(null,e.filter(y$),0),nC(r,n,!0)),o.attr(\"transform\",function(){var d=this,v=d.parentNode,_=v.getBoundingClientRect(),b=tf.select(d.parentNode).select(\".\"+Ya.cn.cellRect).node().getBoundingClientRect(),p=d.transform.baseVal.consolidate(),k=b.top-_.top+(p?p.matrix.f:Ya.cellPad);return og(xZe(i,tf.select(d.parentNode).select(\".\"+Ya.cn.cellTextHolder).node().getBoundingClientRect().width),k)}),i.settledY=!0}}}function xZe(e,t){switch(e.align){case\"left\":return Ya.cellPad;case\"right\":return e.column.columnWidth-(t||0)-Ya.cellPad;case\"center\":return(e.column.columnWidth-(t||0))/2;default:return Ya.cellPad}}function x$(e){e.attr(\"transform\",function(t){var r=t.rowBlocks[0].auxiliaryBlocks.reduce(function(o,s){return o+B7(s,1/0)},0),n=m$(t),i=B7(n,t.key),a=i+r;return og(0,a)}).selectAll(\".\"+Ya.cn.cellRect).attr(\"height\",function(t){return dKt(m$(t),t.key).rowHeight})}function g$(e,t){for(var r=0,n=t-1;n>=0;n--)r+=hKt(e[n]);return r}function B7(e,t){for(var r=0,n=0;n{\"use strict\";var vKt=Id().getModuleCalcData,pKt=b$(),N7=\"table\";U7.name=N7;U7.plot=function(e){var t=vKt(e.calcdata,N7)[0];t.length&&pKt(e,t)};U7.clean=function(e,t,r,n){var i=n._has&&n._has(N7),a=t._has&&t._has(N7);i&&!a&&n._paperdiv.selectAll(\".table\").remove()}});var AZe=ye((A2r,TZe)=>{\"use strict\";TZe.exports={attributes:a$(),supplyDefaults:JXe(),calc:QXe(),plot:b$(),moduleType:\"trace\",name:\"table\",basePlotModule:wZe(),categories:[\"noOpacity\"],meta:{}}});var MZe=ye((S2r,SZe)=>{\"use strict\";SZe.exports=AZe()});var PZe=ye((M2r,LZe)=>{\"use strict\";var EZe=ec(),kZe=Lh(),w$=Rd(),gKt=df().descriptionWithDates,mKt=mc().overrideAll,CZe=Pd().dash,T$=Ao().extendFlat;LZe.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:EZe({editType:\"calc\"}),offset:{valType:\"number\",dflt:10,editType:\"calc\"},editType:\"calc\"},type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"date\",\"category\"],dflt:\"-\",editType:\"calc\"},autotypenumbers:w$.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:T$({},w$.labelalias,{editType:\"calc\"}),tickfont:EZe({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\",\"SI extended\"],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:gKt(\"tick label\")},tickformatstops:mKt(w$.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:kZe.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:T$({},CZe,{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:T$({},CZe,{editType:\"calc\"}),minorgridcolor:{valType:\"color\",dflt:kZe.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 G7=ye((E2r,DZe)=>{\"use strict\";var yKt=ec(),IZe=PZe(),RZe=Lh(),V7=yKt({editType:\"calc\"}),_Kt=pf().zorder;V7.family.dflt='\"Open Sans\", verdana, arial, sans-serif';V7.size.dflt=12;V7.color.dflt=RZe.defaultLine;DZe.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:IZe,baxis:IZe,font:V7,color:{valType:\"color\",dflt:RZe.defaultLine,editType:\"plot\"},zorder:_Kt}});var OZe=ye((k2r,zZe)=>{\"use strict\";var FZe=Dr().isArray1D;zZe.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||FZe(i))&&(!s||FZe(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 NZe=ye((C2r,BZe)=>{\"use strict\";var xKt=G7(),qZe=ka().addOpacity,bKt=qa(),aC=Dr(),wKt=bb(),TKt=e_(),AKt=t_(),SKt=aI(),MKt=ym(),EKt=I3();BZe.exports=function(t,r,n){var i=n.letter,a=n.font||{},o=xKt[i+\"axis\"];function s(g,P){return aC.coerce(t,r,o,g,P)}function l(g,P){return aC.coerce2(t,r,o,g,P)}n.name&&(r._name=n.name,r._id=n.name),s(\"autotypenumbers\",n.autotypenumbersDflt);var u=s(\"type\");if(u===\"-\"&&(n.data&&kKt(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=bKt.getComponentMethod(\"calendars\",\"handleDefaults\");c(t,r,\"calendar\",n.calendar)}MKt(r,n.fullLayout),r.c2p=aC.identity;var f=s(\"color\",n.dfltColor),h=f===t.color?f:a.color,d=s(\"title.text\");d&&(aC.coerceFont(s,\"title.font\",a,{overrideDflt:{size:aC.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\"),wKt(t,r,s,u),AKt(t,r,s,u,n),TKt(t,r,s,u,n),SKt(t,r,s,{data:n.data,dataAttr:i});var _=l(\"gridcolor\",qZe(f,.3)),b=l(\"gridwidth\"),p=l(\"griddash\"),k=s(\"showgrid\");k||(delete r.gridcolor,delete r.gridwidth,delete r.griddash);var E=l(\"startlinecolor\",f),S=l(\"startlinewidth\",b),L=s(\"startline\",r.showgrid||!!E||!!S);L||(delete r.startlinecolor,delete r.startlinewidth);var x=l(\"endlinecolor\",f),C=l(\"endlinewidth\",b),M=s(\"endline\",r.showgrid||!!x||!!C);return M||(delete r.endlinecolor,delete r.endlinewidth),k?(s(\"minorgridcount\"),s(\"minorgridwidth\",b),s(\"minorgriddash\",p),s(\"minorgridcolor\",qZe(_,.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 kKt(e,t){if(e.type===\"-\"){var r=e._id,n=r.charAt(0),i=n+\"calendar\",a=e[i];e.type=EKt(t,a,{autotypenumbers:e.autotypenumbers})}}});var VZe=ye((L2r,UZe)=>{\"use strict\";var CKt=NZe(),LKt=vl();UZe.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\")),PKt(t,r,n,a)};function PKt(e,t,r,n){var i=[\"aaxis\",\"baxis\"];i.forEach(function(a){var o=a.charAt(0),s=e[a]||{},l=LKt.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};CKt(s,l,u),l._categories=l._categories||[],!e[a]&&s.type!==\"-\"&&(e[a]={type:s.type})})}});var jZe=ye((P2r,HZe)=>{\"use strict\";var GZe=Dr(),IKt=OZe(),RKt=VZe(),DKt=G7(),FKt=Lh();HZe.exports=function(t,r,n,i){function a(l,u){return GZe.coerce(t,r,DKt,l,u)}r._clipPathId=\"clip\"+r.uid+\"carpet\";var o=a(\"color\",FKt.defaultLine);if(GZe.coerceFont(a,\"font\",i.font),a(\"carpet\"),RKt(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=IKt(t,r,a);s||(r.visible=!1),r._cheater&&a(\"cheaterslope\"),a(\"zorder\")}});var A$=ye((I2r,WZe)=>{\"use strict\";var zKt=Dr().isArrayOrTypedArray;WZe.exports=function(t,r,n){var i;for(zKt(t)?t.length>r.length&&(t=t.slice(0,r.length)):t=[],i=0;i{\"use strict\";XZe.exports=function(t,r,n){if(t.length===0)return\"\";var i,a=[],o=n?3:1;for(i=0;i{\"use strict\";ZZe.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 iYe=ye((F2r,rYe)=>{\"use strict\";var X7=Oa(),H7=So(),j7=A$(),$Ze=S$(),oC=YZe(),M$=ru(),Up=Dr(),QZe=Up.strRotate,W7=Up.strTranslate,eYe=$h();rYe.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=X7.select(this),h=c[0],d=h.trace,v=d.aaxis,_=d.baxis,b=Up.ensureSingle(f,\"g\",\"minorlayer\"),p=Up.ensureSingle(f,\"g\",\"majorlayer\"),k=Up.ensureSingle(f,\"g\",\"boundarylayer\"),E=Up.ensureSingle(f,\"g\",\"labellayer\");f.style(\"opacity\",d.opacity),q5(o,s,p,v,\"a\",v._gridlines,!0,a),q5(o,s,p,_,\"b\",_._gridlines,!0,a),q5(o,s,b,v,\"a\",v._minorgridlines,!0,a),q5(o,s,b,_,\"b\",_._minorgridlines,!0,a),q5(o,s,k,v,\"a-boundary\",v._boundarylines,a),q5(o,s,k,_,\"b-boundary\",_._boundarylines,a);var S=KZe(t,o,s,d,h,E,v._labels,\"a-label\"),L=KZe(t,o,s,d,h,E,_._labels,\"b-label\");qKt(t,E,d,h,o,s,S,L),OKt(d,h,u,o,s)})};function OKt(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(H7.font,f.font).text(f.text).call(M$.convertToTspans,e),p=H7.bBox(this);b.attr(\"transform\",W7(d.p[0],d.p[1])+QZe(d.angle)+W7(f.axis.labelpadding*_,p.height*.3)),u=Math.max(u,p.width+f.axis.labelpadding)}),l.exit().remove(),c.maxExtent=u,c}function qKt(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),_=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,oC(r,i,a,c,r.dxydb_rough(l,u))),JZe(e,t,r,n,c,f,r.aaxis,i,a,o,\"a-title\"),l=h,u=.5*(v+_),c=r.ab2xy(l,u,!0),f=r.dxydb_rough(l,u),s.angle===void 0&&Up.extendFlat(s,oC(r,i,a,c,r.dxyda_rough(l,u))),JZe(e,t,r,n,c,f,r.baxis,i,a,s,\"b-title\")}var tYe=eYe.LINE_SPACING,BKt=(1-eYe.MID_SHIFT)/tYe+1;function JZe(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=oC(r,s,l,i,a);[\"start\",\"both\"].indexOf(o.showticklabels)===-1&&(d=0);var _=o.title.font.size;d+=_+o.title.offset;var b=u.angle+(u.flip<0?180:0),p=(b-v.angle+450)%360,k=p>90&&p<270,E=X7.select(this);E.text(o.title.text).call(M$.convertToTspans,e),k&&(d=(-M$.lineCount(E)+BKt)*tYe*_-d),E.attr(\"transform\",W7(v.p[0],v.p[1])+QZe(v.angle)+W7(0,d)).attr(\"text-anchor\",\"middle\").call(H7.font,o.title.font)}),h.exit().remove()}});var aYe=ye((z2r,nYe)=>{\"use strict\";var Z7=Dr().isArrayOrTypedArray;nYe.exports=function(e,t,r){var n,i,a,o,s,l,u=[],c=Z7(e)?e.length:e,f=Z7(t)?t.length:t,h=Z7(e)?e:null,d=Z7(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,_=1/0,b=-1/0;for(i=0;i{\"use strict\";var oYe=Dr().isArrayOrTypedArray;lYe.exports=function(e){return sYe(e,0)};function sYe(e,t){if(!oYe(e)||t>=10)return null;for(var r=1/0,n=-1/0,i=e.length,a=0;a{\"use strict\";var NKt=ho(),kx=Ao().extendFlat;cYe.exports=function(t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p,k=t[\"_\"+r],E=t[r+\"axis\"],S=E._gridlines=[],L=E._minorgridlines=[],x=E._boundarylines=[],C=t[\"_\"+n],M=t[n+\"axis\"];E.tickmode===\"array\"&&(E.tickvals=k.slice());var g=t._xctrl,P=t._yctrl,T=g[0].length,z=g.length,O=t._a.length,V=t._b.length;NKt.prepTicks(E),E.tickmode===\"array\"&&delete E.tickvals;var G=E.smoothing?3:1;function Z(N){var j,re,oe,_e,Ee,Ce,me,ie,Se,Le,Ae,Fe,Pe=[],ge=[],Re={};if(r===\"b\")for(re=t.b2j(N),oe=Math.floor(Math.max(0,Math.min(V-2,re))),_e=re-oe,Re.length=V,Re.crossLength=O,Re.xy=function(ce){return t.evalxy([],ce,re)},Re.dxy=function(ce,Ze){return t.dxydi([],ce,oe,Ze,_e)},j=0;j0&&(Se=t.dxydi([],j-1,oe,0,_e),Pe.push(Ee[0]+Se[0]/3),ge.push(Ee[1]+Se[1]/3),Le=t.dxydi([],j-1,oe,1,_e),Pe.push(ie[0]-Le[0]/3),ge.push(ie[1]-Le[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;else for(j=t.a2i(N),Ce=Math.floor(Math.max(0,Math.min(O-2,j))),me=j-Ce,Re.length=O,Re.crossLength=V,Re.xy=function(ce){return t.evalxy([],j,ce)},Re.dxy=function(ce,Ze){return t.dxydj([],Ce,ce,me,Ze)},re=0;re0&&(Ae=t.dxydj([],Ce,re-1,me,0),Pe.push(Ee[0]+Ae[0]/3),ge.push(Ee[1]+Ae[1]/3),Fe=t.dxydj([],Ce,re-1,me,1),Pe.push(ie[0]-Fe[0]/3),ge.push(ie[1]-Fe[1]/3)),Pe.push(ie[0]),ge.push(ie[1]),Ee=ie;return Re.axisLetter=r,Re.axis=E,Re.crossAxis=M,Re.value=N,Re.constvar=n,Re.index=f,Re.x=Pe,Re.y=ge,Re.smoothing=M.smoothing,Re}function H(N){var j,re,oe,_e,Ee,Ce=[],me=[],ie={};if(ie.length=k.length,ie.crossLength=C.length,r===\"b\")for(oe=Math.max(0,Math.min(V-2,N)),Ee=Math.min(1,Math.max(0,N-oe)),ie.xy=function(Se){return t.evalxy([],Se,N)},ie.dxy=function(Se,Le){return t.dxydi([],Se,oe,Le,Ee)},j=0;jk.length-1)&&S.push(kx(H(a),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u;fk.length-1)&&!(v<0||v>k.length-1))for(_=k[o],b=k[v],i=0;ik[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash})));E.startline&&x.push(kx(H(0),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(H(k.length-1),{color:E.endlinecolor,width:E.endlinewidth}))}else{for(s=5e-15,l=[Math.floor((k[k.length-1]-E.tick0)/E.dtick*(1+s)),Math.ceil((k[0]-E.tick0)/E.dtick/(1+s))].sort(function(N,j){return N-j}),u=l[0],c=l[1],f=u;f<=c;f++)h=E.tick0+E.dtick*f,S.push(kx(Z(h),{color:E.gridcolor,width:E.gridwidth,dash:E.griddash}));for(f=u-1;fk[k.length-1])&&L.push(kx(Z(d),{color:E.minorgridcolor,width:E.minorgridwidth,dash:E.minorgriddash}));E.startline&&x.push(kx(Z(k[0]),{color:E.startlinecolor,width:E.startlinewidth})),E.endline&&x.push(kx(Z(k[k.length-1]),{color:E.endlinecolor,width:E.endlinewidth}))}}});var pYe=ye((B2r,vYe)=>{\"use strict\";var hYe=ho(),dYe=Ao().extendFlat;vYe.exports=function(t,r){var n,i,a,o,s,l=r._labels=[],u=r._gridlines;for(n=0;n{\"use strict\";gYe.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 _Ye=ye((U2r,yYe)=>{\"use strict\";var UKt=Dr();yYe.exports=function(t,r,n){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(oe,_e){var Ee=0,Ce,me=0;return oe>0&&(Ce=t[_e][oe-1])!==void 0&&(me++,Ee+=Ce),oe0&&(Ce=t[_e-1][oe])!==void 0&&(me++,Ee+=Ce),_e0&&a0&&iM);return UKt.log(\"Smoother converged to\",g,\"after\",T,\"iterations\"),t}});var bYe=ye((V2r,xYe)=>{\"use strict\";xYe.exports={RELATIVE_CULL_TOLERANCE:1e-6}});var AYe=ye((G2r,TYe)=>{\"use strict\";var wYe=.5;TYe.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,wYe/2),c=Math.pow(s*s+l*l,wYe/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 MYe=ye((H2r,SYe)=>{\"use strict\";var E$=AYe(),Y7=Dr().ensureArray;function B5(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]}SYe.exports=function(t,r,n,i,a,o){var s,l,u,c,f,h,d,v,_,b,p=n[0].length,k=n.length,E=a?3*p-2:p,S=o?3*k-2:k;for(t=Y7(t,S),r=Y7(r,S),u=0;u{\"use strict\";EYe.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,_,b=Math.max(0,Math.min(Math.floor(l),a)),p=Math.max(0,Math.min(Math.floor(u),o)),k=Math.max(0,Math.min(1,l-b)),E=Math.max(0,Math.min(1,u-p));b*=3,p*=3;var S=k*k,L=S*k,x=1-k,C=x*x,M=C*x,g=E*E,P=g*E,T=1-E,z=T*T,O=z*T;for(_=0;_{\"use strict\";CYe.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,_=1-o,b=_*_,p=_*o*2,k=-3*b,E=3*(b-p),S=3*(p-v),L=3*v,x=s*s,C=x*s,M=1-s,g=M*M,P=g*M;for(d=0;d{\"use strict\";PYe.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,_=v*o,b=1-o,p=b*b,k=p*b,E=s*s,S=1-s,L=S*S,x=S*s*2,C=-3*L,M=3*(L-x),g=3*(x-E),P=3*E;for(d=0;d{\"use strict\";var RYe=bYe(),DYe=R6().findBin,VKt=MYe(),GKt=kYe(),HKt=LYe(),jKt=IYe();FYe.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*RYe.RELATIVE_CULL_TOLERANCE,_=d*RYe.RELATIVE_CULL_TOLERANCE;l-=v,u+=v,c-=_,f+=_,t.isVisible=function(b,p){return b>l&&bc&&pu||pf},t.setScale=function(){var b=t._x,p=t._y,k=VKt(t._xctrl,t._yctrl,b,p,o.smoothing,s.smoothing);t._xctrl=k[0],t._yctrl=k[1],t.evalxy=GKt([t._xctrl,t._yctrl],i,a,o.smoothing,s.smoothing),t.dxydi=HKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing),t.dxydj=jKt([t._xctrl,t._yctrl],o.smoothing,s.smoothing)},t.i2a=function(b){var p=Math.max(0,Math.floor(b[0]),i-2),k=b[0]-p;return(1-k)*r[p]+k*r[p+1]},t.j2b=function(b){var p=Math.max(0,Math.floor(b[1]),i-2),k=b[1]-p;return(1-k)*n[p]+k*n[p+1]},t.ij2ab=function(b){return[t.i2a(b[0]),t.j2b(b[1])]},t.a2i=function(b){var p=Math.max(0,Math.min(DYe(b,r),i-2)),k=r[p],E=r[p+1];return Math.max(0,Math.min(i-1,p+(b-k)/(E-k)))},t.b2j=function(b){var p=Math.max(0,Math.min(DYe(b,n),a-2)),k=n[p],E=n[p+1];return Math.max(0,Math.min(a-1,p+(b-k)/(E-k)))},t.ab2ij=function(b){return[t.a2i(b[0]),t.b2j(b[1])]},t.i2c=function(b,p){return t.evalxy([],b,p)},t.ab2xy=function(b,p,k){if(!k&&(br[i-1]|pn[a-1]))return[!1,!1];var E=t.a2i(b),S=t.b2j(p),L=t.evalxy([],E,S);if(k){var x=0,C=0,M=[],g,P,T,z;br[i-1]?(g=i-2,P=1,x=(b-r[i-1])/(r[i-1]-r[i-2])):(g=Math.max(0,Math.min(i-2,Math.floor(E))),P=E-g),pn[a-1]?(T=a-2,z=1,C=(p-n[a-1])/(n[a-1]-n[a-2])):(T=Math.max(0,Math.min(a-2,Math.floor(S))),z=S-T),x&&(t.dxydi(M,g,T,P,z),L[0]+=M[0]*x,L[1]+=M[1]*x),C&&(t.dxydj(M,g,T,P,z),L[0]+=M[0]*C,L[1]+=M[1]*C)}return L},t.c2p=function(b,p,k){return[p.c2p(b[0]),k.c2p(b[1])]},t.p2x=function(b,p,k){return[p.p2c(b[0]),k.p2c(b[1])]},t.dadi=function(b){var p=Math.max(0,Math.min(r.length-2,b));return r[p+1]-r[p]},t.dbdj=function(b){var p=Math.max(0,Math.min(n.length-2,b));return n[p+1]-n[p]},t.dxyda=function(b,p,k,E){var S=t.dxydi(null,b,p,k,E),L=t.dadi(b,k);return[S[0]/L,S[1]/L]},t.dxydb=function(b,p,k,E){var S=t.dxydj(null,b,p,k,E),L=t.dbdj(p,E);return[S[0]/L,S[1]/L]},t.dxyda_rough=function(b,p,k){var E=h*(k||.1),S=t.ab2xy(b+E,p,!0),L=t.ab2xy(b-E,p,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dxydb_rough=function(b,p,k){var E=d*(k||.1),S=t.ab2xy(b,p+E,!0),L=t.ab2xy(b,p-E,!0);return[(S[0]-L[0])*.5/E,(S[1]-L[1])*.5/E]},t.dpdx=function(b){return b._m},t.dpdy=function(b){return b._m}}});var HYe=ye((Y2r,GYe)=>{\"use strict\";var K7=ho(),OYe=Dr().isArray1D,WKt=aYe(),qYe=uYe(),BYe=fYe(),NYe=pYe(),XKt=mYe(),UYe=n8(),VYe=_Ye(),ZKt=r8(),YKt=zYe();GYe.exports=function(t,r){var n=K7.getFromId(t,r.xaxis),i=K7.getFromId(t,r.yaxis),a=r.aaxis,o=r.baxis,s=r.x,l=r.y,u=[];s&&OYe(s)&&u.push(\"x\"),l&&OYe(l)&&u.push(\"y\"),u.length&&ZKt(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=WKt(d,v,r.cheaterslope)}r._x=s=UYe(s),r._y=l=UYe(l),VYe(s,c,f),VYe(l,c,f),YKt(r),r.setScale();var _=qYe(s),b=qYe(l),p=.5*(_[1]-_[0]),k=.5*(_[1]+_[0]),E=.5*(b[1]-b[0]),S=.5*(b[1]+b[0]),L=1.3;return _=[k-p*L,k+p*L],b=[S-E*L,S+E*L],r._extremes[n._id]=K7.findExtremes(n,_,{padded:!0}),r._extremes[i._id]=K7.findExtremes(i,b,{padded:!0}),BYe(r,\"a\",\"b\"),BYe(r,\"b\",\"a\"),NYe(r,a),NYe(r,o),h.clipsegments=XKt(r._xctrl,r._yctrl,a,o),h.x=s,h.y=l,h.a=c,h.b=f,[h]}});var WYe=ye((K2r,jYe)=>{\"use strict\";jYe.exports={attributes:G7(),supplyDefaults:jZe(),plot:iYe(),calc:HYe(),animatable:!0,isContainer:!0,moduleType:\"trace\",name:\"carpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"carpetAxis\",\"notLegendIsolatable\",\"noMultiCategory\",\"noHover\",\"noSortingByValue\"],meta:{}}});var ZYe=ye((J2r,XYe)=>{\"use strict\";XYe.exports=WYe()});var k$=ye(($2r,JYe)=>{\"use strict\";var KKt=kg(),u0=pf(),JKt=Gl(),{hovertemplateAttrs:$Kt,texttemplateAttrs:QKt,templatefallbackAttrs:YYe}=Ll(),KYe=Tu(),Cx=Ao().extendFlat,sg=u0.marker,N5=u0.line,eJt=sg.line;JYe.exports={carpet:{valType:\"string\",editType:\"calc\"},a:{valType:\"data_array\",editType:\"calc\"},b:{valType:\"data_array\",editType:\"calc\"},mode:Cx({},u0.mode,{dflt:\"markers\"}),text:Cx({},u0.text,{}),texttemplate:QKt({editType:\"plot\"},{keys:[\"a\",\"b\",\"text\"]}),texttemplatefallback:YYe({editType:\"plot\"}),hovertext:Cx({},u0.hovertext,{}),line:{color:N5.color,width:N5.width,dash:N5.dash,backoff:N5.backoff,shape:Cx({},N5.shape,{values:[\"linear\",\"spline\"]}),smoothing:N5.smoothing,editType:\"calc\"},connectgaps:u0.connectgaps,fill:Cx({},u0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:KKt(),marker:Cx({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:Cx({width:eJt.width,editType:\"calc\"},KYe(\"marker.line\")),gradient:sg.gradient,editType:\"calc\"},KYe(\"marker\")),textfont:u0.textfont,textposition:u0.textposition,selected:u0.selected,unselected:u0.unselected,hoverinfo:Cx({},JKt.hoverinfo,{flags:[\"a\",\"b\",\"text\",\"name\"]}),hoveron:u0.hoveron,hovertemplate:$Kt(),hovertemplatefallback:YYe(),zorder:u0.zorder}});var tKe=ye((Q2r,eKe)=>{\"use strict\";var $Ye=Dr(),tJt=Sm(),U5=Ru(),rJt=$p(),iJt=R0(),QYe=eT(),nJt=D0(),aJt=Ig(),oJt=k$();eKe.exports=function(t,r,n,i){function a(h,d){return $Ye.coerce(t,r,oJt,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(\"texttemplatefallback\"),a(\"hovertext\");var u=l{\"use strict\";rKe.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((twr,nKe)=>{\"use strict\";nKe.exports=function(e,t){for(var r=e._fullData.length,n,i=0;i{\"use strict\";var aKe=Eo(),sJt=F0(),lJt=km(),uJt=z0(),cJt=O0().calcMarkerSize,fJt=J7();oKe.exports=function(t,r){var n=r._carpetTrace=fJt(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 hJt=oT(),lKe=ho(),dJt=So();uKe.exports=function(t,r,n,i){var a,o,s,l=n[0][0].carpet,u=lKe.getFromId(t,l.xaxis||\"x\"),c=lKe.getFromId(t,l.yaxis||\"y\"),f={xaxis:u,yaxis:c,plot:r.plot};for(a=0;a{\"use strict\";var vJt=cT(),pJt=Dr().fillText;fKe.exports=function(t,r,n,i){var a=vJt(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 _=[];function b(E,S){var L;E.labelprefix&&E.labelprefix.length>0?L=E.labelprefix.replace(/ = $/,\"\"):L=E._hovertitle,_.push(L+\": \"+S.toFixed(3)+E.labelsuffix)}if(!h.hovertemplate){var p=f.hi||h.hoverinfo,k=p.split(\"+\");k.indexOf(\"all\")!==-1&&(k=[\"a\",\"b\",\"text\"]),k.indexOf(\"a\")!==-1&&b(d.aaxis,f.a),k.indexOf(\"b\")!==-1&&b(d.baxis,f.b),_.push(\"y: \"+o.yLabel),k.indexOf(\"text\")!==-1&&pJt(f,h,_),o.extraText=_.join(\"
\")}return a}});var vKe=ye((awr,dKe)=>{\"use strict\";dKe.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 gKe=ye((owr,pKe)=>{\"use strict\";pKe.exports={attributes:k$(),supplyDefaults:tKe(),colorbar:$d(),formatLabels:iKe(),calc:sKe(),plot:cKe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:hKe(),selectPoints:fT(),eventData:vKe(),moduleType:\"trace\",name:\"scattercarpet\",basePlotModule:ph(),categories:[\"svg\",\"carpet\",\"symbols\",\"showLegend\",\"carpetDependent\",\"zoomScale\"],meta:{}}});var yKe=ye((swr,mKe)=>{\"use strict\";mKe.exports=gKe()});var C$=ye((lwr,_Ke)=>{\"use strict\";var lg=LT(),g1=k4(),gJt=Tu(),mJt=Ao().extendFlat,ry=g1.contours;_Ke.exports=mJt({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:ry.type,start:ry.start,end:ry.end,size:ry.size,coloring:{valType:\"enumerated\",values:[\"fill\",\"lines\",\"none\"],dflt:\"fill\",editType:\"calc\"},showlines:ry.showlines,showlabels:ry.showlabels,labelfont:ry.labelfont,labelformat:ry.labelformat,operation:ry.operation,value:ry.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},gJt(\"\",{cLetter:\"z\",autoColorDflt:!1}))});var L$=ye((uwr,wKe)=>{\"use strict\";var xKe=Dr(),yJt=QI(),bKe=C$(),_Jt=MG(),xJt=T8(),bJt=A8();wKe.exports=function(t,r,n,i){function a(u,c){return xKe.coerce(t,r,bKe,u,c)}function o(u){return xKe.coerce2(t,r,bKe,u)}if(a(\"carpet\"),t.a&&t.b){var s=yJt(t,r,a,i,\"a\",\"b\");if(!s){r.visible=!1;return}a(\"text\");var l=a(\"contours.type\")===\"constraint\";l?_Jt(t,r,a,i,n,{hasHover:!1}):(xJt(t,r,a,o),bJt(t,r,a,i,{hasHover:!1}))}else r._defaultColor=n,r._length=null;a(\"zorder\")}});var MKe=ye((cwr,SKe)=>{\"use strict\";var wJt=gv(),TKe=Dr(),TJt=r8(),AJt=n8(),SJt=a8(),MJt=o8(),AKe=YV(),EJt=L$(),kJt=J7(),CJt=vG();SKe.exports=function(t,r){var n=r._carpetTrace=kJt(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),EJt(a,r,r._defaultColor,t._fullLayout)}var o=LJt(t,r);return CJt(r,r._z),o}};function LJt(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,TKe.isArray1D(t.z)&&TJt(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=AJt(t._z||t.z,t.transpose),t._emptypoints=MJt(f),SJt(f,t._emptypoints);var h=TKe.maxRowLength(f),d=t.xtype===\"scaled\"?\"\":a,v=AKe(t,d,o,s,h,n),_=t.ytype===\"scaled\"?\"\":l,b=AKe(t,_,u,c,f.length,i),p={a:v,b,z:f};return t.contours.type===\"levels\"&&t.contours.coloring!==\"none\"&&wJt(e,t,{vals:f,containerStr:\"\",cLetter:\"z\"}),[p]}});var kKe=ye((fwr,EKe)=>{\"use strict\";var PJt=Dr().isArrayOrTypedArray;EKe.exports=function(e,t,r,n){var i,a,o,s,l,u,c,f,h,d,v,_,b,p=PJt(r)?\"a\":\"b\",k=p===\"a\"?e.aaxis:e.baxis,E=k.smoothing,S=p===\"a\"?e.a2i:e.b2j,L=p===\"a\"?r:n,x=p===\"a\"?n:r,C=p===\"a\"?t.a.length:t.b.length,M=p===\"a\"?t.b.length:t.a.length,g=Math.floor(p===\"a\"?e.b2j(x):e.a2i(x)),P=p===\"a\"?function(_e){return e.evalxy([],_e,g)}:function(_e){return e.evalxy([],g,_e)};E&&(o=Math.max(0,Math.min(M-2,g)),s=g-o,a=p===\"a\"?function(_e,Ee){return e.dxydi([],_e,o,Ee,s)}:function(_e,Ee){return e.dxydj([],o,_e,s,Ee)});var T=S(L[0]),z=S(L[1]),O=T0?Math.floor:Math.ceil,Z=O>0?Math.ceil:Math.floor,H=O>0?Math.min:Math.max,N=O>0?Math.max:Math.min,j=G(T+V),re=Z(z-V);c=P(T);var oe=[[c]];for(i=j;i*O{\"use strict\";var Q7=Oa(),e9=A$(),RKe=S$(),sC=So(),m1=Dr(),IJt=gG(),RJt=mG(),dw=E8(),$7=L4(),DJt=bG(),FJt=xG(),zJt=wG(),OJt=J7(),CKe=kKe();DKe.exports=function(t,r,n,i){var a=r.xaxis,o=r.yaxis;m1.makeTraceGroups(i,n,\"contour\").each(function(s){var l=Q7.select(this),u=s[0],c=u.trace,f=c._carpetTrace=OJt(t,c),h=t.calcdata[f.index][0];if(!f.visible||f.visible===\"legendonly\")return;var d=u.a,v=u.b,_=c.contours,b=FJt(_,r,u),p=_.type===\"constraint\",k=_._operation,E=p?k===\"=\"?\"lines\":\"fill\":_.coloring;function S(G){var Z=f.ab2xy(G[0],G[1],!0);return[a.c2p(Z[0]),o.c2p(Z[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]]];IJt(b);var x=(d[d.length-1]-d[0])*1e-8,C=(v[v.length-1]-v[0])*1e-8;RJt(b,x,C);var M=b;_.type===\"constraint\"&&(M=DJt(b,k)),qJt(b,S);var g,P,T,z,O=[];for(z=h.clipsegments.length-1;z>=0;z--)g=h.clipsegments[z],P=e9([],g.x,a.c2p),T=e9([],g.y,o.c2p),P.reverse(),T.reverse(),O.push(RKe(P,T,g.bicubic));var V=\"M\"+O.join(\"L\")+\"Z\";UJt(l,h.clipsegments,a,o,p,E),VJt(c,l,a,o,M,L,S,f,h,E,V),BJt(l,b,t,u,_,r,f),sC.setClipUrl(l,f._clipPathId,t)})};function qJt(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 LKe(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 PKe(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]);return[e[0]/t,e[1]/t]}function IKe(e,t){var r=Math.abs(e[0]*t[0]+e[1]*t[1]),n=Math.sqrt(1-r*r);return n/r}function UJt(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,_=b):Math.abs(h[1]-d[1])=0&&(d=P,_=b):m1.log(\"endpt to newendpt is not vert. or horz.\",h,d,P)}if(_>=0)break;u+=M(h,d),h=d}if(_===t.edgepaths.length){m1.log(\"unclosed perimeter path\");break}l=_,f=c.indexOf(l)===-1,f&&(l=c[0],u+=M(h,d)+\"Z\",h=null)}for(l=0;l{\"use strict\";zKe.exports={attributes:C$(),supplyDefaults:L$(),colorbar:L8(),calc:MKe(),plot:FKe(),style:C8(),moduleType:\"trace\",name:\"contourcarpet\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"carpet\",\"contour\",\"symbols\",\"showLegend\",\"hasLines\",\"carpetDependent\",\"noHover\",\"noSortingByValue\"],meta:{}}});var BKe=ye((vwr,qKe)=>{\"use strict\";qKe.exports=OKe()});var r9=ye((pwr,HKe)=>{\"use strict\";var t9=Dr().extendFlat,lC=pf(),NKe=df().axisHoverFormat,{hovertemplateAttrs:HJt,templatefallbackAttrs:jJt}=Ll(),VKe=Pd().dash,WJt=n3(),GKe=WT(),XJt=GKe.INCREASING.COLOR,ZJt=GKe.DECREASING.COLOR,P$=lC.line;function UKe(e){return{line:{color:t9({},P$.color,{dflt:e}),width:P$.width,dash:VKe,editType:\"style\"},editType:\"style\"}}HKe.exports={xperiod:lC.xperiod,xperiod0:lC.xperiod0,xperiodalignment:lC.xperiodalignment,xhoverformat:NKe(\"x\"),yhoverformat:NKe(\"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:t9({},P$.width,{}),dash:t9({},VKe,{}),editType:\"style\"},increasing:UKe(XJt),decreasing:UKe(ZJt),text:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertext:{valType:\"string\",dflt:\"\",arrayOk:!0,editType:\"calc\"},hovertemplate:HJt({},{keys:[\"open\",\"high\",\"low\",\"close\"]}),hovertemplatefallback:jJt(),tickwidth:{valType:\"number\",min:0,max:.5,dflt:.3,editType:\"calc\"},hoverlabel:t9({},WJt.hoverlabel,{split:{valType:\"boolean\",dflt:!1,editType:\"style\"}}),zorder:lC.zorder}});var I$=ye((gwr,jKe)=>{\"use strict\";var YJt=qa(),KJt=Dr();jKe.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=YJt.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,KJt.minRowLength(a))),r._length=f,f}}});var ZKe=ye((mwr,XKe)=>{\"use strict\";var JJt=Dr(),$Jt=I$(),QJt=Pg(),e$t=r9();XKe.exports=function(t,r,n,i){function a(s,l){return JJt.coerce(t,r,e$t,s,l)}var o=$Jt(t,r,a,i);if(!o){r.visible=!1;return}QJt(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),a(\"line.dash\"),WKe(t,r,a,\"increasing\"),WKe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"tickwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function WKe(e,t,r,n){r(n+\".line.color\"),r(n+\".line.width\",t.line.width),r(n+\".line.dash\",t.line.dash)}});var R$=ye((ywr,KKe)=>{\"use strict\";var V5=Dr(),i9=V5._,n9=ho(),t$t=Rg(),uC=fs().BADNUM;function r$t(e,t){var r=n9.getFromId(e,t.xaxis),n=n9.getFromId(e,t.yaxis),i=n$t(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=YKe(e,t,o,s,n,i$t);return t._extremes[r._id]=n9.findExtremes(r,s,{vpad:a/2}),l.length?(V5.extendFlat(l[0].t,{wHover:a/2,tickLen:i}),l):[{t:{empty:!0}}]}function i$t(e,t,r,n){return{o:e,h:t,l:r,c:n}}function YKe(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=V5.isArrayOrTypedArray(t.text),f=V5.isArrayOrTypedArray(t.hovertext),h=!0,d=null,v=!!t.xperiodalignment,_=[],b=0;bd):h=L>k,d=L;var x=a(k,E,S,L);x.pos=p,x.yc=(k+L)/2,x.i=b,x.dir=h?\"increasing\":\"decreasing\",x.x=x.pos,x.y=[S,E],v&&(x.orig_p=r[b]),c&&(x.tx=t.text[b]),f&&(x.htx=t.hovertext[b]),_.push(x)}else _.push({pos:p,empty:!0})}return t._extremes[i._id]=n9.findExtremes(i,V5.concat(l,s),{padded:!0}),_.length&&(_[0].t={labels:{open:i9(e,\"open:\")+\" \",high:i9(e,\"high:\")+\" \",low:i9(e,\"low:\")+\" \",close:i9(e,\"close:\")+\" \"}}),_}function n$t(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 a$t=Oa(),JKe=Dr();$Ke.exports=function(t,r,n,i){var a=r.yaxis,o=r.xaxis,s=!!o.rangebreaks;JKe.makeTraceGroups(i,n,\"trace ohlc\").each(function(l){var u=a$t.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(JKe.identity);v.enter().append(\"path\"),v.exit().remove(),v.attr(\"d\",function(_){if(_.empty)return\"M0,0Z\";var b=o.c2p(_.pos-d,!0),p=o.c2p(_.pos+d,!0),k=s?(b+p)/2:o.c2p(_.pos,!0),E=a.c2p(_.o,!0),S=a.c2p(_.h,!0),L=a.c2p(_.l,!0),x=a.c2p(_.c,!0);return\"M\"+b+\",\"+E+\"H\"+k+\"M\"+k+\",\"+S+\"V\"+L+\"M\"+p+\",\"+x+\"H\"+k})})}});var tJe=ye((xwr,eJe)=>{\"use strict\";var D$=Oa(),o$t=So(),s$t=ka();eJe.exports=function(t,r,n){var i=n||D$.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;D$.select(this).selectAll(\"path\").each(function(s){if(!s.empty){var l=o[s.dir].line;D$.select(this).style(\"fill\",\"none\").call(s$t.stroke,l.color).call(o$t.dashLine,l.dash,l.width).style(\"opacity\",o.selectedpoints&&!s.selected?.3:1)}})})}});var z$=ye((bwr,oJe)=>{\"use strict\";var F$=ho(),l$t=Dr(),a9=vf(),u$t=ka(),c$t=Dr().fillText,rJe=WT(),f$t={increasing:rJe.INCREASING.SYMBOL,decreasing:rJe.DECREASING.SYMBOL};function h$t(e,t,r,n){var i=e.cd,a=i[0].trace;return a.hoverlabel.split?nJe(e,t,r,n):aJe(e,t,r,n)}function iJe(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},_=s.bdPos||s.tickLen,b=s.wHover,p=Math.min(1,_/Math.abs(a.r2c(a.range[1])-a.r2c(a.range[0])));f=e.maxHoverDistance-p,h=e.maxSpikeDistance-p;function k(P){var T=v(P);return a9.inbox(T-b,T+b,f)}function E(P){var T=P[u],z=P[c];return T===z||a9.inbox(T-r,z-r,f)}function S(P){return(k(P)+E(P))/2}var L=a9.getDistanceFunction(n,k,E,S);if(a9.getClosest(i,L,e),e.index===!1)return null;var x=i[e.index];if(x.empty)return null;var C=x.dir,M=o[C],g=M.line.color;return u$t.opacity(g)&&M.line.width?e.color=g:e.color=M.fillcolor,e.x0=a.c2p(x.pos+d-_,!0),e.x1=a.c2p(x.pos+d+_,!0),e.xLabelVal=x.orig_p!==void 0?x.orig_p:x.pos,e.spikeDistance=S(x)*h/f,e.xSpike=a.c2p(x.pos,!0),e}function nJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=[],u=iJe(e,t,r,n);if(!u)return[];var c=i[u.index],f=c.hi||o.hoverinfo||\"\";if(f===\"none\"||f===\"skip\")return[];for(var h=[\"high\",\"open\",\"close\",\"low\"],d={},v=0;v\"+s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat)):(k=l$t.extendFlat({},u),k.y0=k.y1=p,k.yLabelVal=b,k.yLabel=s.labels[_]+F$.hoverLabelText(a,b,o.yhoverformat),k.name=\"\",l.push(k),d[b]=k)}return l}function aJe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=iJe(e,t,r,n);if(!l)return[];var u=l.index,c=i[u],f=l.index=c.i,h=c.dir;function d(S){return s.labels[S]+F$.hoverLabelText(a,o[S][f],o.yhoverformat)}var v=c.hi||o.hoverinfo||\"\",_=v.split(\"+\"),b=v===\"all\",p=b||_.indexOf(\"y\")!==-1,k=b||_.indexOf(\"text\")!==-1,E=p?[d(\"open\"),d(\"high\"),d(\"low\"),d(\"close\")+\" \"+f$t[h]]:[];return k&&c$t(c,o,E),l.extraText=E.join(\"
\"),l.y0=l.y1=a.c2p(c.yc,!0),[l]}oJe.exports={hoverPoints:h$t,hoverSplit:nJe,hoverOnPoints:aJe}});var O$=ye((wwr,sJe)=>{\"use strict\";sJe.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\";lJe.exports={moduleType:\"trace\",name:\"ohlc\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\"],meta:{},attributes:r9(),supplyDefaults:ZKe(),calc:R$().calc,plot:QKe(),style:tJe(),hoverPoints:z$().hoverPoints,selectPoints:O$()}});var fJe=ye((Awr,cJe)=>{\"use strict\";cJe.exports=uJe()});var B$=ye((Swr,vJe)=>{\"use strict\";var q$=Dr().extendFlat,hJe=df().axisHoverFormat,dp=r9(),G5=_4();function dJe(e){return{line:{color:q$({},G5.line.color,{dflt:e}),width:G5.line.width,editType:\"style\"},fillcolor:G5.fillcolor,editType:\"style\"}}vJe.exports={xperiod:dp.xperiod,xperiod0:dp.xperiod0,xperiodalignment:dp.xperiodalignment,xhoverformat:hJe(\"x\"),yhoverformat:hJe(\"y\"),x:dp.x,open:dp.open,high:dp.high,low:dp.low,close:dp.close,line:{width:q$({},G5.line.width,{}),editType:\"style\"},increasing:dJe(dp.increasing.line.color.dflt),decreasing:dJe(dp.decreasing.line.color.dflt),text:dp.text,hovertext:dp.hovertext,hovertemplate:dp.hovertemplate,hovertemplatefallback:dp.hovertemplatefallback,whiskerwidth:q$({},G5.whiskerwidth,{dflt:0}),hoverlabel:dp.hoverlabel,zorder:G5.zorder}});var mJe=ye((Mwr,gJe)=>{\"use strict\";var d$t=Dr(),v$t=ka(),p$t=I$(),g$t=Pg(),m$t=B$();gJe.exports=function(t,r,n,i){function a(s,l){return d$t.coerce(t,r,m$t,s,l)}var o=p$t(t,r,a,i);if(!o){r.visible=!1;return}g$t(t,r,i,a,{x:!0}),a(\"xhoverformat\"),a(\"yhoverformat\"),a(\"line.width\"),pJe(t,r,a,\"increasing\"),pJe(t,r,a,\"decreasing\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),a(\"whiskerwidth\"),i._requestRangeslider[r.xaxis]=!0,a(\"zorder\")};function pJe(e,t,r,n){var i=r(n+\".line.color\");r(n+\".line.width\",t.line.width),r(n+\".fillcolor\",v$t.addOpacity(i,.5))}});var bJe=ye((Ewr,xJe)=>{\"use strict\";var yJe=Dr(),_Je=ho(),y$t=Rg(),_$t=R$().calcCommon;xJe.exports=function(e,t){var r=e._fullLayout,n=_Je.getFromId(e,t.xaxis),i=_Je.getFromId(e,t.yaxis),a=n.makeCalcdata(t,\"x\"),o=y$t(t,n,\"x\",a).vals,s=_$t(e,t,a,o,i,x$t);return s.length?(yJe.extendFlat(s[0].t,{num:r._numBoxes,dPos:yJe.distinctVals(o).minDiff/2,posLetter:\"x\",valLetter:\"y\"}),r._numBoxes++,s):[{t:{empty:!0}}]};function x$t(e,t,r,n){return{min:r,q1:Math.min(e,n),med:n,q3:Math.max(e,n),max:t}}});var TJe=ye((kwr,wJe)=>{\"use strict\";wJe.exports={moduleType:\"trace\",name:\"candlestick\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"showLegend\",\"candlestick\",\"boxLayout\"],meta:{},attributes:B$(),layoutAttributes:x4(),supplyLayoutDefaults:XI().supplyLayoutDefaults,crossTraceCalc:YI().crossTraceCalc,supplyDefaults:mJe(),calc:bJe(),plot:KI().plot,layerName:\"boxlayer\",style:JI().style,hoverPoints:z$().hoverPoints,selectPoints:O$()}});var SJe=ye((Cwr,AJe)=>{\"use strict\";AJe.exports=TJe()});var U$=ye((Lwr,MJe)=>{\"use strict\";var s9=Dr(),b$t=ym(),o9=s9.deg2rad,N$=s9.rad2deg;MJe.exports=function(t,r,n){switch(b$t(t,n),t._id){case\"x\":case\"radialaxis\":w$t(t,r);break;case\"angularaxis\":S$t(t,r);break}};function w$t(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 T$t(e,t){return t===\"degrees\"?o9(e):e}function A$t(e,t){return t===\"degrees\"?N$(e):e}function S$t(e,t){var r=e.type;if(r===\"linear\"){var n=e.d2c,i=e.c2d;e.d2c=function(a,o){return T$t(n(a),o)},e.c2d=function(a,o){return i(A$t(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\";EJe.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 c9=ye((Iwr,IJe)=>{\"use strict\";var vw=Dr(),kJe=EM().tester,V$=vw.findIndexOfMin,LJe=vw.isAngleInsideSector,M$t=vw.angleDelta,CJe=vw.angleDist;function E$t(e,t,r,n,i){if(!LJe(t,n))return!1;var a,o;r[0]0?o:1/0},n=V$(t,r),i=vw.mod(n+1,t.length);return[t[n],t[i]]}function u9(e){return Math.abs(e)>1e-10?e:0}function G$(e,t,r){t=t||0,r=r||0;for(var n=e.length,i=new Array(n),a=0;a{\"use strict\";function RJe(e){return e<0?-1:e>0?1:0}function j5(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 W5(e,t){var r=t[0],n=t[1];return[r*e.radius+e.cx,-n*e.radius+e.cy]}function DJe(e,t){return t*e.radius}function F$t(e,t,r,n){var i=W5(e,j5([r,t])),a=i[0],o=i[1],s=W5(e,j5([n,t])),l=s[0],u=s[1];if(t===0)return[\"M\"+a+\",\"+o,\"L\"+l+\",\"+u].join(\" \");var c=DJe(e,1/Math.abs(t));return[\"M\"+a+\",\"+o,\"A\"+c+\",\"+c+\" 0 0,\"+(t<0?1:0)+\" \"+l+\",\"+u].join(\" \")}function z$t(e,t,r,n){var i=DJe(e,1/(t+1)),a=W5(e,j5([t,r])),o=a[0],s=a[1],l=W5(e,j5([t,n])),u=l[0],c=l[1];if(RJe(r)!==RJe(n)){var f=W5(e,j5([t,0])),h=f[0],d=f[1];return[\"M\"+o+\",\"+s,\"A\"+i+\",\"+i+\" 0 0,\"+(0{\"use strict\";var pw=Oa(),O$t=cd(),mw=qa(),Xc=Dr(),iy=Xc.strRotate,xd=Xc.strTranslate,j$=ka(),cC=So(),q$t=Mc(),vp=ho(),B$t=ym(),N$t=U$(),U$t=Tg().doAutoRange,y1=NN(),d9=yv(),zJe=vf(),V$t=Eb(),G$t=Of().prepSelect,H$t=Of().selectOnClick,W$=Of().clearOutline,OJe=Ag(),qJe=dM(),BJe=bM().redrawReglTraces,j$t=$h().MID_SHIFT,Lx=l9(),_1=c9(),v9=H$(),f9=v9.smith,W$t=v9.reactanceArc,X$t=v9.resistanceArc,h9=v9.smithTransform,Z$t=Xc._,NJe=Xc.mod,Px=Xc.deg2rad,gw=Xc.rad2deg;function UJe(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 Nd=UJe.prototype;HJe.exports=function(t,r,n){return new UJe(t,r,n)};Nd.plot=function(e,t){for(var r=this,n=t[r.id],i=!1,a=0;ab?(p=u,k=u*b,L=(c-k)/i.h/2,E=[s[0],s[1]],S=[l[0]+L,l[1]-L]):(p=c/b,k=c,L=(u-p)/i.w/2,E=[s[0]+L,s[1]-L],S=[l[0],l[1]]),r.xLength2=p,r.yLength2=k,r.xDomain2=E,r.yDomain2=S;var x=r.xOffset2=i.l+i.w*E[0],C=r.yOffset2=i.t+i.h*(1-S[1]),M=r.radius=p/d,g=r.innerRadius=r.getHole(t)*M,P=r.cx=x-M*h[0],T=r.cy=C+M*h[3],z=r.cxx=P-x,O=r.cyy=T-C,V=a.side,G;V===\"counterclockwise\"?(G=V,V=\"top\"):V===\"clockwise\"&&(G=V,V=\"bottom\"),r.radialAxis=r.mockAxis(e,t,a,{_id:\"x\",side:V,_trueSide:G,domain:[g/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:E}),r.yaxis=r.mockCartesianAxis(e,t,{_id:\"y\",domain:S});var Z=r.pathSubplot();r.clipPaths.forTraces.select(\"path\").attr(\"d\",Z).attr(\"transform\",xd(z,O)),n.frontplot.attr(\"transform\",xd(x,C)).call(cC.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr(\"d\",Z).attr(\"transform\",xd(P,T)).call(j$.fill,t.bgcolor)};Nd.mockAxis=function(e,t,r,n){var i=Xc.extendFlat({},r,n);return N$t(i,t,e),i};Nd.mockCartesianAxis=function(e,t,r){var n=this,i=n.isSmith,a=r._id,o=Xc.extendFlat({type:\"linear\"},r);B$t(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};Nd.doAutoRange=function(e,t){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(t);U$t(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 g=h9(r,f9([M.x,0]));return xd(g[0]-s,g[1]-l)}:function(M){return xd(f.l2p(M.x)+o,0)},_=d?function(M){return X$t(r,M.x,-1/0,1/0)}:function(M){return r.pathArc(f.r2p(M.x)+o)},b=VJe(u);if(r.radialTickLayout!==b&&(i[\"radial-axis\"].selectAll(\".xtick\").remove(),r.radialTickLayout=b),h){f.setScale();var p=0,k=d?(f.tickvals||[]).filter(function(M){return M>=0}).map(function(M){return vp.tickText(f,M,!0,!1)}):vp.calcTicks(f),E=d?k:vp.clipEnds(f,k),S=vp.getTickSigns(f)[2];d&&((f.ticks===\"top\"&&f.side===\"bottom\"||f.ticks===\"bottom\"&&f.side===\"top\")&&(S=-S),f.ticks===\"top\"&&f.side===\"top\"&&(p=-f.ticklen),f.ticks===\"bottom\"&&f.side===\"bottom\"&&(p=f.ticklen)),vp.drawTicks(n,f,{vals:k,layer:i[\"radial-axis\"],path:vp.makeTickPath(f,0,S),transFn:v,crisp:!1}),vp.drawGrid(n,f,{vals:E,layer:i[\"radial-grid\"],path:_,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,f,{vals:k,layer:i[\"radial-axis\"],transFn:v,labelFns:vp.makeLabelFns(f,p)})}var L=r.radialAxisAngle=r.vangles?gw(GJe(Px(u.angle),r.vangles)):u.angle,x=xd(s,l),C=x+iy(-L);fC(i[\"radial-axis\"],h&&(u.showticklabels||u.ticks),{transform:C}),fC(i[\"radial-grid\"],h&&u.showgrid,{transform:d?\"\":x}),fC(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(j$.stroke,u.linecolor)};Nd.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=cC.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,_=Px(v),b=Math.cos(_),p=Math.sin(_),k=o+a/2*b+c*p,E=s-a/2*p+c*b;n.layers[\"radial-axis-title\"]=V$t.draw(i,u,{propContainer:l,propName:n.id+\".radialaxis.title.text\",placeholder:Z$t(i,\"Click to enter radial axis title\"),attributes:{x:k,y:E,\"text-anchor\":\"middle\"},transform:{rotate:-v}})}};Nd.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(g){var P=h9(r,f9([0,g.x]));return Math.atan2(P[0]-s,P[1]-l)-Math.PI/2}:function(g){return c.t2g(g.x)};c.type===\"linear\"&&c.thetaunit===\"radians\"&&(c.tick0=gw(c.tick0),c.dtick=gw(c.dtick));var d=function(g){return xd(s+a*Math.cos(g),l-a*Math.sin(g))},v=f?function(g){var P=h9(r,f9([0,g.x]));return xd(P[0],P[1])}:function(g){return d(h(g))},_=f?function(g){var P=h9(r,f9([0,g.x])),T=Math.atan2(P[0]-s,P[1]-l)-Math.PI/2;return xd(P[0],P[1])+iy(-gw(T))}:function(g){var P=h(g);return d(P)+iy(-gw(P))},b=f?function(g){return W$t(r,g.x,0,1/0)}:function(g){var P=h(g),T=Math.cos(P),z=Math.sin(P);return\"M\"+[s+o*T,l-o*z]+\"L\"+[s+a*T,l-a*z]},p=vp.makeLabelFns(c,0),k=p.labelStandoff,E={};E.xFn=function(g){var P=h(g);return Math.cos(P)*k},E.yFn=function(g){var P=h(g),T=Math.sin(P)>0?.2:1;return-Math.sin(P)*(k+g.fontSize*T)+Math.abs(Math.cos(P))*(g.fontSize*j$t)},E.anchorFn=function(g){var P=h(g),T=Math.cos(P);return Math.abs(T)<.1?\"middle\":T>0?\"start\":\"end\"},E.heightFn=function(g,P,T){var z=h(g);return-.5*(1+Math.sin(z))*T};var S=VJe(u);r.angularTickLayout!==S&&(i[\"angular-axis\"].selectAll(\".\"+c._id+\"tick\").remove(),r.angularTickLayout=S);var L=f?[1/0].concat(c.tickvals||[]).map(function(g){return vp.tickText(c,g,!0,!1)}):vp.calcTicks(c);f&&(L[0].text=\"\\u221E\",L[0].fontSize*=1.75);var x;if(t.gridshape===\"linear\"?(x=L.map(h),Xc.angleDelta(x[0],x[1])<0&&(x=x.slice().reverse())):x=null,r.vangles=x,c.type===\"category\"&&(L=L.filter(function(g){return Xc.isAngleInsideSector(h(g),r.sectorInRad)})),c.visible){var C=c.ticks===\"inside\"?-1:1,M=(c.linewidth||1)/2;vp.drawTicks(n,c,{vals:L,layer:i[\"angular-axis\"],path:\"M\"+C*M+\",0h\"+C*c.ticklen,transFn:_,crisp:!1}),vp.drawGrid(n,c,{vals:L,layer:i[\"angular-grid\"],path:b,transFn:Xc.noop,crisp:!1}),vp.drawLabels(n,c,{vals:L,layer:i[\"angular-axis\"],repositionOnUpdate:!0,transFn:v,labelFns:E})}fC(i[\"angular-line\"].select(\"path\"),u.showline,{d:r.pathSubplot(),transform:xd(s,l)}).attr(\"stroke-width\",u.linewidth).call(j$.stroke,u.linecolor)};Nd.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)}};Nd.updateHoverAndMainDrag=function(e){var t=this,r=t.isSmith,n=t.gd,i=t.layers,a=e._zoomlayer,o=Lx.MINZOOM,s=Lx.OFFEDGE,l=t.radius,u=t.innerRadius,c=t.cx,f=t.cy,h=t.cxx,d=t.cyy,v=t.sectorInRad,_=t.vangles,b=t.radialAxis,p=_1.clampTiny,k=_1.findXYatLength,E=_1.findEnclosingVertexAngles,S=Lx.cornerHalfWidth,L=Lx.cornerLen/2,x,C,M=y1.makeDragger(i,\"path\",\"maindrag\",e.dragmode===!1?\"none\":\"crosshair\");pw.select(M).attr(\"d\",t.pathSubplot()).attr(\"transform\",xd(c,f)),M.onmousemove=function(ce){zJe.hover(n,ce,t.id),n._fullLayout._lasthover=M,n._fullLayout._hoversubplot=t.id},M.onmouseout=function(ce){n._dragging||d9.unhover(n,ce)};var g={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,z,O,V,G,Z,H,N;function j(ce,Ze){return Math.sqrt(ce*ce+Ze*Ze)}function re(ce,Ze){return j(ce-h,Ze-d)}function oe(ce,Ze){return Math.atan2(d-Ze,ce-h)}function _e(ce,Ze){return[ce*Math.cos(Ze),ce*Math.sin(-Ze)]}function Ee(ce,Ze){if(ce===0)return t.pathSector(2*S);var ut=L/ce,pt=Ze-ut,Zt=Ze+ut,st=Math.max(0,Math.min(ce,l)),lt=st-S,Gt=st+S;return\"M\"+_e(lt,pt)+\"A\"+[lt,lt]+\" 0,0,0 \"+_e(lt,Zt)+\"L\"+_e(Gt,Zt)+\"A\"+[Gt,Gt]+\" 0,0,1 \"+_e(Gt,pt)+\"Z\"}function Ce(ce,Ze,ut){if(ce===0)return t.pathSector(2*S);var pt=_e(ce,Ze),Zt=_e(ce,ut),st=p((pt[0]+Zt[0])/2),lt=p((pt[1]+Zt[1])/2),Gt,Nt;if(st&<){var Jt=lt/st,sr=-1/Jt,wr=k(S,Jt,st,lt);Gt=k(L,sr,wr[0][0],wr[0][1]),Nt=k(L,sr,wr[1][0],wr[1][1])}else{var cr,$e;lt?(cr=L,$e=S):(cr=S,$e=L),Gt=[[st-cr,lt-$e],[st+cr,lt-$e]],Nt=[[st-cr,lt+$e],[st+cr,lt+$e]]}return\"M\"+Gt.join(\"L\")+\"L\"+Nt.reverse().join(\"L\")+\"Z\"}function me(){z=null,O=null,V=t.pathSubplot(),G=!1;var ce=n._fullLayout[t.id];Z=O$t(ce.bgcolor).getLuminance(),H=y1.makeZoombox(a,Z,c,f,V),H.attr(\"fill-rule\",\"evenodd\"),N=y1.makeCorners(a,c,f),W$(n)}function ie(ce,Ze){return Ze=Math.max(Math.min(Ze,l),u),ceo?(ce-1&&ce===1&&H$t(Ze,n,[t.xaxis],[t.yaxis],t.id,g),ut.indexOf(\"event\")>-1&&zJe.click(n,Ze,t.id)}g.prepFn=function(ce,Ze,ut){var pt=n._fullLayout.dragmode,Zt=M.getBoundingClientRect();n._fullLayout._calcInverseTransform(n);var st=n._fullLayout._invTransform;x=n._fullLayout._invScaleX,C=n._fullLayout._invScaleY;var lt=Xc.apply3DTransform(st)(Ze-Zt.left,ut-Zt.top);if(P=lt[0],T=lt[1],_){var Gt=_1.findPolygonOffset(l,v[0],v[1],_);P+=h+Gt[0],T+=d+Gt[1]}switch(pt){case\"zoom\":g.clickFn=Re,r||(_?g.moveFn=Fe:g.moveFn=Le,g.doneFn=Pe,me(ce,Ze,ut));break;case\"select\":case\"lasso\":G$t(ce,Ze,ut,g,pt);break}},d9.init(g)};Nd.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=Lx.radialDragBoxSize,h=f/2;if(!c.visible)return;var d=Px(n.radialAxisAngle),v=c._rl,_=v[0],b=v[1],p=v[r],k=.75*(v[1]-v[0])/(1-n.getHole(t))/o,E,S,L;r?(E=l+(o+h)*Math.cos(d),S=u-(o+h)*Math.sin(d),L=\"radialdrag\"):(E=l+(s-h)*Math.cos(d),S=u-(s-h)*Math.sin(d),L=\"radialdrag-inner\");var x=y1.makeRectDragger(a,L,\"crosshair\",-h,-h,f,f),C={element:x,gd:i};e.dragmode===!1&&(C.dragmode=!1),fC(pw.select(x),c.visible&&s0!=(r?P>_: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 GJe(e,t){var r=function(i){return Xc.angleDist(e,i)},n=Xc.findIndexOfMin(t,r);return t[n]}function fC(e,t,r){return t?(e.attr(\"display\",null),e.attr(r)):e&&e.attr(\"display\",\"none\"),e}});var Z$=ye((Fwr,KJe)=>{\"use strict\";var K$t=Lh(),os=Rd(),J$t=Cc().attributes,c0=Dr().extendFlat,jJe=mc().overrideAll,WJe=jJe({color:os.color,showline:c0({},os.showline,{dflt:!0}),linecolor:os.linecolor,linewidth:os.linewidth,showgrid:c0({},os.showgrid,{dflt:!0}),gridcolor:os.gridcolor,gridwidth:os.gridwidth,griddash:os.griddash},\"plot\",\"from-root\"),XJe=jJe({tickmode:os.minor.tickmode,nticks:os.nticks,tick0:os.tick0,dtick:os.dtick,tickvals:os.tickvals,ticktext:os.ticktext,ticks:os.ticks,ticklen:os.ticklen,tickwidth:os.tickwidth,tickcolor:os.tickcolor,ticklabelstep:os.ticklabelstep,showticklabels:os.showticklabels,labelalias:os.labelalias,minorloglabels:os.minorloglabels,showtickprefix:os.showtickprefix,tickprefix:os.tickprefix,showticksuffix:os.showticksuffix,ticksuffix:os.ticksuffix,showexponent:os.showexponent,exponentformat:os.exponentformat,minexponent:os.minexponent,separatethousands:os.separatethousands,tickfont:os.tickfont,tickangle:os.tickangle,tickformat:os.tickformat,tickformatstops:os.tickformatstops,layer:os.layer},\"plot\",\"from-root\"),ZJe={visible:c0({},os.visible,{dflt:!0}),type:c0({},os.type,{values:[\"-\",\"linear\",\"log\",\"date\",\"category\"]}),autotypenumbers:os.autotypenumbers,autorangeoptions:{minallowed:os.autorangeoptions.minallowed,maxallowed:os.autorangeoptions.maxallowed,clipmin:os.autorangeoptions.clipmin,clipmax:os.autorangeoptions.clipmax,include:os.autorangeoptions.include,editType:\"plot\"},autorange:c0({},os.autorange,{editType:\"plot\"}),rangemode:{valType:\"enumerated\",values:[\"tozero\",\"nonnegative\",\"normal\"],dflt:\"tozero\",editType:\"calc\"},minallowed:c0({},os.minallowed,{editType:\"plot\"}),maxallowed:c0({},os.maxallowed,{editType:\"plot\"}),range:c0({},os.range,{items:[{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}},{valType:\"any\",editType:\"plot\",impliedEdits:{\"^autorange\":!1}}],editType:\"plot\"}),categoryorder:os.categoryorder,categoryarray:os.categoryarray,angle:{valType:\"angle\",editType:\"plot\"},autotickangles:os.autotickangles,side:{valType:\"enumerated\",values:[\"clockwise\",\"counterclockwise\"],dflt:\"clockwise\",editType:\"plot\"},title:{text:c0({},os.title.text,{editType:\"plot\",dflt:\"\"}),font:c0({},os.title.font,{editType:\"plot\"}),editType:\"plot\"},hoverformat:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(ZJe,WJe,XJe);var YJe={visible:c0({},os.visible,{dflt:!0}),type:{valType:\"enumerated\",values:[\"-\",\"linear\",\"category\"],dflt:\"-\",editType:\"calc\",_noTemplating:!0},autotypenumbers:os.autotypenumbers,categoryorder:os.categoryorder,categoryarray:os.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:os.hoverformat,uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"};c0(YJe,WJe,XJe);KJe.exports={domain:J$t({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:K$t.background},radialaxis:ZJe,angularaxis:YJe,gridshape:{valType:\"enumerated\",values:[\"circular\",\"linear\"],dflt:\"circular\",editType:\"plot\"},uirevision:{valType:\"any\",editType:\"none\"},editType:\"calc\"}});var e$e=ye((zwr,QJe)=>{\"use strict\";var p9=Dr(),$$t=ka(),Q$t=vl(),eQt=k_(),tQt=Id().getSubplotData,rQt=bb(),iQt=S3(),nQt=e_(),aQt=t_(),oQt=aI(),sQt=e4(),lQt=yB(),uQt=I3(),$Je=Z$(),cQt=U$(),g9=l9(),JJe=g9.axisNames;function fQt(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=$$t.combine(i,n.paper_bgcolor);var a=r(\"sector\");r(\"hole\");var o=tQt(n.fullData,g9.name,n.id),s=n.layoutOut,l;function u(H,N){return r(l+\".\"+H,N)}for(var c=0;c{\"use strict\";var dQt=Id().getSubplotCalcData,vQt=Dr().counterRegex,pQt=X$(),r$e=l9(),i$e=r$e.attr,yw=r$e.name,t$e=vQt(yw),n$e={};n$e[i$e]={valType:\"subplotid\",dflt:yw,editType:\"calc\"};function gQt(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[yw],i=0;i{\"use strict\";var{hovertemplateAttrs:yQt,texttemplateAttrs:_Qt,templatefallbackAttrs:o$e}=Ll(),y9=Ao().extendFlat,xQt=kg(),f0=pf(),bQt=Gl(),X5=f0.line;s$e.exports={mode:f0.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:f0.text,texttemplate:_Qt({editType:\"plot\"},{keys:[\"r\",\"theta\",\"text\"]}),texttemplatefallback:o$e({editType:\"plot\"}),hovertext:f0.hovertext,line:{color:X5.color,width:X5.width,dash:X5.dash,backoff:X5.backoff,shape:y9({},X5.shape,{values:[\"linear\",\"spline\"]}),smoothing:X5.smoothing,editType:\"calc\"},connectgaps:f0.connectgaps,marker:f0.marker,cliponaxis:y9({},f0.cliponaxis,{dflt:!1}),textposition:f0.textposition,textfont:f0.textfont,fill:y9({},f0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:xQt(),hoverinfo:y9({},bQt.hoverinfo,{flags:[\"r\",\"theta\",\"text\",\"name\"]}),hoveron:f0.hoveron,hovertemplate:yQt(),hovertemplatefallback:o$e(),selected:f0.selected,unselected:f0.unselected}});var x9=ye((Bwr,c$e)=>{\"use strict\";var _9=Dr(),Z5=Ru(),wQt=$p(),TQt=R0(),l$e=eT(),AQt=D0(),SQt=Ig(),MQt=Sm().PTS_LINESONLY,EQt=hC();function kQt(e,t,r,n){function i(s,l){return _9.coerce(e,t,EQt,s,l)}var a=u$e(e,t,n,i);if(!a){t.visible=!1;return}i(\"thetaunit\"),i(\"mode\",a{\"use strict\";var CQt=Dr(),f$e=ho();h$e.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=f$e.tickText(o,l,!0).text;var u=s.thetaunit===\"degrees\"?CQt.rad2deg(t.theta):t.theta;return i.thetaLabel=f$e.tickText(s,u,!0).text,i}});var p$e=ye((Uwr,v$e)=>{\"use strict\";var d$e=Eo(),LQt=fs().BADNUM,PQt=ho(),IQt=F0(),RQt=km(),DQt=z0(),FQt=O0().calcMarkerSize;v$e.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 zQt=oT(),g$e=fs().BADNUM;m$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=r.radialAxis,u=r.angularAxis,c=0;c{\"use strict\";var OQt=cT();function qQt(e,t,r,n){var i=OQt(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,_$e(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function _$e(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(\"
\")}}x$e.exports={hoverPoints:qQt,makeHoverPointText:_$e}});var w$e=ye((Hwr,b$e)=>{\"use strict\";b$e.exports={moduleType:\"trace\",name:\"scatterpolar\",basePlotModule:m9(),categories:[\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:hC(),supplyDefaults:x9().supplyDefaults,colorbar:$d(),formatLabels:b9(),calc:p$e(),plot:y$e(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:w9().hoverPoints,selectPoints:fT(),meta:{}}});var A$e=ye((jwr,T$e)=>{\"use strict\";T$e.exports=w$e()});var Y$=ye((Zwr,M$e)=>{\"use strict\";var S$e=hC(),{cliponaxis:Wwr,hoveron:Xwr}=S$e,BQt=lee(S$e,[\"cliponaxis\",\"hoveron\"]),{connectgaps:NQt,line:{color:UQt,dash:VQt,width:GQt},fill:HQt,fillcolor:jQt,marker:WQt,textfont:XQt,textposition:ZQt}=lk();M$e.exports=q1(mg({},BQt),{connectgaps:NQt,fill:HQt,fillcolor:jQt,line:{color:UQt,dash:VQt,editType:\"calc\",width:GQt},marker:WQt,textfont:XQt,textposition:ZQt})});var C$e=ye((Kwr,k$e)=>{\"use strict\";var E$e=Dr(),K$=Ru(),YQt=x9().handleRThetaDefaults,KQt=$p(),JQt=R0(),$Qt=D0(),QQt=Ig(),eer=Sm().PTS_LINESONLY,ter=Y$();k$e.exports=function(t,r,n,i){function a(s,l){return E$e.coerce(t,r,ter,s,l)}var o=YQt(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"mode\",o{\"use strict\";var rer=b9();L$e.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]),rer(t,r,n)}});var R$e=ye(($wr,I$e)=>{\"use strict\";var ier=F0(),ner=O0().calcMarkerSize,aer=K2(),oer=ho(),ser=ox().TOO_MANY_POINTS;I$e.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 ler=NF(),uer=w9().makeHoverPointText;function cer(e,t,r,n){var i=e.cd,a=i[0].t,o=a.r,s=a.theta,l=ler.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,uer(f,h,c,u),l}}D$e.exports={hoverPoints:cer}});var O$e=ye((e3r,z$e)=>{\"use strict\";z$e.exports={moduleType:\"trace\",name:\"scatterpolargl\",basePlotModule:m9(),categories:[\"gl\",\"regl\",\"polar\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:Y$(),supplyDefaults:C$e(),colorbar:$d(),formatLabels:P$e(),calc:R$e(),hoverPoints:F$e().hoverPoints,selectPoints:lY(),meta:{}}});var q$e=ye((t3r,J$)=>{\"use strict\";var fer=GF(),her=Eo(),der=hK(),ver=aY(),T9=K2(),A9=Dr(),per=ox().TOO_MANY_POINTS,ger={};J$.exports=function(t,r,n){if(n.length){var i=r.radialAxis,a=r.angularAxis,o=ver(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,_,b=h.slice(),p=d.slice();for(_=0;_=per&&(v.marker.cluster=c.tree),v.marker&&(v.markerSel.positions=v.markerUnsel.positions=v.marker.positions=k),v.line&&k.length>1&&A9.extendFlat(v.line,T9.linePositions(t,u,k)),v.text&&(A9.extendFlat(v.text,{positions:k},T9.textPosition(t,u,v.text,v.marker)),A9.extendFlat(v.textSel,{positions:k},T9.textPosition(t,u,v.text,v.markerSel)),A9.extendFlat(v.textUnsel,{positions:k},T9.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=E,c.y=S,c.rawx=E,c.rawy=S,c.r=h,c.theta=d,c.positions=k,c._scene=o,c.index=o.count,o.count++}}),der(t,r,n)}};J$.exports.reglPrecompiled=ger});var U$e=ye((r3r,N$e)=>{\"use strict\";var B$e=O$e();B$e.plot=q$e();N$e.exports=B$e});var G$e=ye((i3r,V$e)=>{\"use strict\";V$e.exports=U$e()});var $$=ye((n3r,H$e)=>{\"use strict\";var{hovertemplateAttrs:mer,templatefallbackAttrs:yer}=Ll(),Y5=Ao().extendFlat,Ix=hC(),Rx=Lm();H$e.exports={r:Ix.r,theta:Ix.theta,r0:Ix.r0,dr:Ix.dr,theta0:Ix.theta0,dtheta:Ix.dtheta,thetaunit:Ix.thetaunit,base:Y5({},Rx.base,{}),offset:Y5({},Rx.offset,{}),width:Y5({},Rx.width,{}),text:Y5({},Rx.text,{}),hovertext:Y5({},Rx.hovertext,{}),marker:_er(),hoverinfo:Ix.hoverinfo,hovertemplate:mer(),hovertemplatefallback:yer(),selected:Rx.selected,unselected:Rx.unselected};function _er(){var e=Y5({},Rx.marker);return delete e.cornerradius,e}});var Q$=ye((a3r,j$e)=>{\"use strict\";j$e.exports={barmode:{valType:\"enumerated\",values:[\"stack\",\"overlay\"],dflt:\"stack\",editType:\"calc\"},bargap:{valType:\"number\",dflt:.1,min:0,max:1,editType:\"calc\"}}});var Z$e=ye((o3r,X$e)=>{\"use strict\";var W$e=Dr(),xer=x9().handleRThetaDefaults,ber=UI(),wer=$$();X$e.exports=function(t,r,n,i){function a(s,l){return W$e.coerce(t,r,wer,s,l)}var o=xer(t,r,i,a);if(!o){r.visible=!1;return}a(\"thetaunit\"),a(\"base\"),a(\"offset\"),a(\"width\"),a(\"text\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),ber(t,r,a,n,i),W$e.coerceSelectionMarkerOpacity(r,a)}});var K$e=ye((s3r,Y$e)=>{\"use strict\";var Ter=Dr(),Aer=Q$();Y$e.exports=function(e,t,r){var n={},i;function a(l,u){return Ter.coerce(e[i]||{},t[i],Aer,l,u)}for(var o=0;o{\"use strict\";var J$e=pv().hasColorscale,$$e=gv(),Ser=Dr().isArrayOrTypedArray,Mer=p4(),Eer=jb().setGroupPositions,ker=z0(),Cer=qa().traceIs,Ler=Dr().extendFlat;function Per(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 eQe=Oa(),S9=Eo(),K5=Dr(),Rer=So(),tQ=c9();tQe.exports=function(t,r,n){var i=t._context.staticPlot,a=r.xaxis,o=r.yaxis,s=r.radialAxis,l=r.angularAxis,u=Der(r),c=r.layers.frontplot.select(\"g.barlayer\");K5.makeTraceGroups(c,n,\"trace bars\").each(function(){var f=eQe.select(this),h=K5.ensureSingle(f,\"g\",\"points\"),d=h.selectAll(\"g.point\").data(K5.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 _=eQe.select(this),b=v.rp0=s.c2p(v.s0),p=v.rp1=s.c2p(v.s1),k=v.thetag0=l.c2g(v.p0),E=v.thetag1=l.c2g(v.p1),S;if(!S9(b)||!S9(p)||!S9(k)||!S9(E)||b===p||k===E)S=\"M0,0Z\";else{var L=s.c2g(v.s1),x=(k+E)/2;v.ct=[a.c2p(L*Math.cos(x)),o.c2p(L*Math.sin(x))],S=u(b,p,k,E)}K5.ensureSingle(_,\"path\").attr(\"d\",S)}),Rer.setClipUrl(f,r._hasClipOnAxisFalse?r.clipIds.forTraces:null,t)})};function Der(e){var t=e.cxx,r=e.cyy;return e.vangles?function(n,i,a,o){var s,l;K5.angleDelta(a,o)>0?(s=a,l=o):(s=o,l=a);var u=tQ.findEnclosingVertexAngles(s,e.vangles)[0],c=tQ.findEnclosingVertexAngles(l,e.vangles)[1],f=[u,(s+l)/2,c];return tQ.pathPolygonAnnulus(n,i,s,l,f,t,r)}:function(n,i,a,o){return K5.pathAnnulus(n,i,a,o,t,r)}}});var nQe=ye((c3r,iQe)=>{\"use strict\";var Fer=vf(),rQ=Dr(),zer=MT().getTraceColor,Oer=rQ.fillText,qer=w9().makeHoverPointText,Ber=c9().isPtInsidePolygon;iQe.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?Ber:rQ.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 _=function(E){return c(d,v,[E.rp0,E.rp1],[E.thetag0,E.thetag1],u)?f+Math.min(1,Math.abs(E.thetag1-E.thetag0)/h)-1+(E.rp1-d)/(E.rp1-E.rp0)-1:1/0};if(Fer.getClosest(i,_,t),t.index!==!1){var b=t.index,p=i[b];t.x0=t.x1=p.ct[0],t.y0=t.y1=p.ct[1];var k=rQ.extendFlat({},p,{r:p.s,theta:p.p});return Oer(p,a,t),qer(k,a,o,t),t.hovertemplate=a.hovertemplate,t.color=zer(a,p),t.xLabelVal=t.yLabelVal=void 0,p.s<0&&(t.idealAlign=\"left\"),[t]}}});var oQe=ye((f3r,aQe)=>{\"use strict\";aQe.exports={moduleType:\"trace\",name:\"barpolar\",basePlotModule:m9(),categories:[\"polar\",\"bar\",\"showLegend\"],attributes:$$(),layoutAttributes:Q$(),supplyDefaults:Z$e(),supplyLayoutDefaults:K$e(),calc:eQ().calc,crossTraceCalc:eQ().crossTraceCalc,plot:rQe(),colorbar:$d(),formatLabels:b9(),style:N0().style,styleOnSelect:N0().styleOnSelect,hoverPoints:nQe(),selectPoints:ET(),meta:{}}});var lQe=ye((h3r,sQe)=>{\"use strict\";sQe.exports=oQe()});var iQ=ye((d3r,uQe)=>{\"use strict\";uQe.exports={attr:\"subplot\",name:\"smith\",axisNames:[\"realaxis\",\"imaginaryaxis\"],axisName2dataArray:{imaginaryaxis:\"imag\",realaxis:\"real\"}}});var nQ=ye((v3r,dQe)=>{\"use strict\";var Ner=Lh(),Nf=Rd(),Uer=Cc().attributes,Dx=Dr().extendFlat,cQe=mc().overrideAll,fQe=cQe({color:Nf.color,showline:Dx({},Nf.showline,{dflt:!0}),linecolor:Nf.linecolor,linewidth:Nf.linewidth,showgrid:Dx({},Nf.showgrid,{dflt:!0}),gridcolor:Nf.gridcolor,gridwidth:Nf.gridwidth,griddash:Nf.griddash},\"plot\",\"from-root\"),hQe=cQe({ticklen:Nf.ticklen,tickwidth:Dx({},Nf.tickwidth,{dflt:2}),tickcolor:Nf.tickcolor,showticklabels:Nf.showticklabels,labelalias:Nf.labelalias,showtickprefix:Nf.showtickprefix,tickprefix:Nf.tickprefix,showticksuffix:Nf.showticksuffix,ticksuffix:Nf.ticksuffix,tickfont:Nf.tickfont,tickformat:Nf.tickformat,hoverformat:Nf.hoverformat,layer:Nf.layer},\"plot\",\"from-root\"),Ver=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{dflt:[.2,.5,1,2,5],valType:\"data_array\",editType:\"plot\"},tickangle:Dx({},Nf.tickangle,{dflt:90}),ticks:{valType:\"enumerated\",values:[\"top\",\"bottom\",\"\"],editType:\"ticks\"},side:{valType:\"enumerated\",values:[\"top\",\"bottom\"],dflt:\"top\",editType:\"plot\"},editType:\"calc\"},fQe,hQe),Ger=Dx({visible:Dx({},Nf.visible,{dflt:!0}),tickvals:{valType:\"data_array\",editType:\"plot\"},ticks:Nf.ticks,editType:\"calc\"},fQe,hQe);dQe.exports={domain:Uer({name:\"smith\",editType:\"plot\"}),bgcolor:{valType:\"color\",editType:\"plot\",dflt:Ner.background},realaxis:Ver,imaginaryaxis:Ger,editType:\"calc\"}});var gQe=ye((p3r,pQe)=>{\"use strict\";var J5=Dr(),Her=ka(),jer=vl(),Wer=k_(),Xer=Id().getSubplotData,Zer=t_(),Yer=e_(),Ker=e4(),Jer=ym(),$5=nQ(),aQ=iQ(),vQe=aQ.axisNames,$er=etr(function(e){return J5.isTypedArray(e)&&(e=Array.from(e)),e.slice().reverse().map(function(t){return-t}).concat([0]).concat(e)},String);function Qer(e,t,r,n){var i=r(\"bgcolor\");n.bgColor=Her.combine(i,n.paper_bgcolor);var a=Xer(n.fullData,aQ.name,n.id),o=n.layoutOut,s;function l(L,x){return r(s+\".\"+L,x)}for(var u=0;u{\"use strict\";var ttr=Id().getSubplotCalcData,rtr=Dr().counterRegex,itr=X$(),yQe=iQ(),_Qe=yQe.attr,_w=yQe.name,mQe=rtr(_w),xQe={};xQe[_Qe]={valType:\"subplotid\",dflt:_w,editType:\"calc\"};function ntr(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[_w],i=0;i{\"use strict\";var{hovertemplateAttrs:otr,texttemplateAttrs:str,templatefallbackAttrs:TQe}=Ll(),M9=Ao().extendFlat,ltr=kg(),h0=pf(),utr=Gl(),Q5=h0.line;AQe.exports={mode:h0.mode,real:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},imag:{valType:\"data_array\",editType:\"calc+clearAxisTypes\"},text:h0.text,texttemplate:str({editType:\"plot\"},{keys:[\"real\",\"imag\",\"text\"]}),texttemplatefallback:TQe({editType:\"plot\"}),hovertext:h0.hovertext,line:{color:Q5.color,width:Q5.width,dash:Q5.dash,backoff:Q5.backoff,shape:M9({},Q5.shape,{values:[\"linear\",\"spline\"]}),smoothing:Q5.smoothing,editType:\"calc\"},connectgaps:h0.connectgaps,marker:h0.marker,cliponaxis:M9({},h0.cliponaxis,{dflt:!1}),textposition:h0.textposition,textfont:h0.textfont,fill:M9({},h0.fill,{values:[\"none\",\"toself\",\"tonext\"],dflt:\"none\"}),fillcolor:ltr(),hoverinfo:M9({},utr.hoverinfo,{flags:[\"real\",\"imag\",\"text\",\"name\"]}),hoveron:h0.hoveron,hovertemplate:otr(),hovertemplatefallback:TQe(),selected:h0.selected,unselected:h0.unselected}});var EQe=ye((y3r,MQe)=>{\"use strict\";var E9=Dr(),eS=Ru(),ctr=$p(),ftr=R0(),SQe=eT(),htr=D0(),dtr=Ig(),vtr=Sm().PTS_LINESONLY,ptr=oQ();MQe.exports=function(t,r,n,i){function a(l,u){return E9.coerce(t,r,ptr,l,u)}var o=gtr(t,r,i,a);if(!o){r.visible=!1;return}a(\"mode\",o{\"use strict\";var kQe=ho();CQe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot;return i.realLabel=kQe.tickText(a.radialAxis,t.real,!0).text,i.imagLabel=kQe.tickText(a.angularAxis,t.imag,!0).text,i}});var RQe=ye((x3r,IQe)=>{\"use strict\";var PQe=Eo(),mtr=fs().BADNUM,ytr=F0(),_tr=km(),xtr=z0(),btr=O0().calcMarkerSize;IQe.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 wtr=oT(),DQe=fs().BADNUM,Ttr=H$(),Atr=Ttr.smith;FQe.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 Str=cT();function Mtr(e,t,r,n){var i=Str(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,OQe(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function OQe(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(\"
\")}}qQe.exports={hoverPoints:Mtr,makeHoverPointText:OQe}});var UQe=ye((T3r,NQe)=>{\"use strict\";NQe.exports={moduleType:\"trace\",name:\"scattersmith\",basePlotModule:wQe(),categories:[\"smith\",\"symbols\",\"showLegend\",\"scatter-like\"],attributes:oQ(),supplyDefaults:EQe(),colorbar:$d(),formatLabels:LQe(),calc:RQe(),plot:zQe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:BQe().hoverPoints,selectPoints:fT(),meta:{}}});var GQe=ye((A3r,VQe)=>{\"use strict\";VQe.exports=UQe()});var kv=ye((S3r,jQe)=>{var C9=Oh();function HQe(){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={}}C9(HQe.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 sQ(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(Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/,this._calendar.local.name)}function k9(e,t){return e=\"\"+e,\"000000\".substring(0,t-e.length)+e}C9(sQ.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(Gs.local.invalidDate||Gs.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(Gs.local.differentCalendars||Gs.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?\"-\":\"\")+k9(Math.abs(this.year()),4)+\"-\"+k9(this.month(),2)+\"-\"+k9(this.day(),2)}});function lQ(){this.shortYearCutoff=\"+10\"}C9(lQ.prototype,{_validateLevel:0,newDate:function(e,t,r){return e==null?this.today():(e.year&&(this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),r=e.day(),t=e.month(),e=e.year()),new sQ(this,e,t,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.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,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return(t.year()<0?\"-\":\"\")+k9(Math.abs(t.year()),4)},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear),12},monthOfYear:function(e,t){var r=this._validate(e,t,this.minDay,Gs.local.invalidMonth||Gs.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,Gs.local.invalidMonth||Gs.regionalOptions[\"\"].invalidMonth),r},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,Gs.local.invalidYear||Gs.regionalOptions[\"\"].invalidYear);return this.leapYear(t)?366:365},dayOfYear:function(e,t,r){var n=this._validate(e,t,r,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(e,t,r){return this._validate(e,t,r,Gs.local.invalidDate||Gs.regionalOptions[\"\"].invalidDate),{}},add:function(e,t,r){return this._validate(e,this.minMonth,this.minDay,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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,Gs.local.invalidDate||Gs.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 Gs=jQe.exports=new HQe;Gs.cdate=sQ;Gs.baseCalendar=lQ;Gs.calendars.gregorian=uQ});var WQe=ye(()=>{var cQ=Oh(),Ud=kv();cQ(Ud.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\"});Ud.local=Ud.regionalOptions[\"\"];cQ(Ud.cdate.prototype,{formatDate:function(e,t){return typeof e!=\"string\"&&(t=e,e=\"\"),this._calendar.formatDate(e||\"\",this,t)}});cQ(Ud.baseCalendar.prototype,{UNIX_EPOCH:Ud.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:24*60*60,TICKS_EPOCH:Ud.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 Ud.local.invalidFormat||Ud.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(S,L){for(var x=1;E+x1},c=function(S,L,x,C){var M=\"\"+L;if(u(S,C))for(;M.length1},k=function(z,O){var V=p(z,O),G=[2,3,V?4:2,V?4:2,10,11,20][\"oyYJ@!\".indexOf(z)+1],Z=new RegExp(\"^-?\\\\d{1,\"+G+\"}\"),H=t.substring(M).match(Z);if(!H)throw(Ud.local.missingNumberAt||Ud.regionalOptions[\"\"].missingNumberAt).replace(/\\{0\\}/,M);return M+=H[0].length,parseInt(H[0],10)},E=this,S=function(){if(typeof s==\"function\"){p(\"m\");var z=s.call(E,t.substring(M));return M+=z.length,z}return k(\"m\")},L=function(z,O,V,G){for(var Z=p(z,G)?V:O,H=0;H-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 XQe=ye(()=>{var Fx=kv(),Etr=Oh(),fQ=Fx.instance();function L9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}L9.prototype=new Fx.baseCalendar;Etr(L9.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(Ctr);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(Ltr);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(Ptr);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 Fx.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 Fx.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,Fx.local.invalidyear),i=Ox[n-Ox[0]],a=i>>9&4095,o=i>>5&15,s=i&31,l;l=fQ.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 Fx.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,Fx.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=Rtr(e,a,r,i);return fQ.toJD(o.year,o.month,o.day)},fromJD:function(e){var t=fQ.fromJD(e),r=Itr(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(ktr),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(L9.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 ktr=/^\\s*(-?\\d\\d\\d\\d|\\d\\d)[-/](\\d?\\d)([iI]?)[-/](\\d?\\d)/m,Ctr=/^\\d?\\d[iI]?/m,Ltr=/^\u95f0?\u5341?[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]?\u6708/m,Ptr=/^\u95f0?\u5341?[\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]?/m;Fx.calendars.chinese=L9;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],Ox=[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 Itr(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=Ox[i.year-Ox[0]],c=i.year<<9|i.month<<5|i.day;a.year=c>=u?i.year:i.year-1,u=Ox[a.year-Ox[0]];var f=u>>9&4095,h=u>>5&15,d=u&31,v,_=new Date(f,h-1,d),b=new Date(i.year,i.month-1,i.day);v=Math.round((b-_)/(24*3600*1e3));var p=zx[a.year-zx[0]],k;for(k=0;k<13;k++){var E=p&1<<12-k?30:29;if(v>13;return!S||k=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 _=0;_>9&4095,E=p>>5&15,S=p&31,L=new Date(k,E-1,S+f);return a.year=L.getFullYear(),a.month=1+L.getMonth(),a.day=L.getDate(),a}});var ZQe=ye(()=>{var xw=kv(),Dtr=Oh();function hQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}hQ.prototype=new xw.baseCalendar;Dtr(hQ.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,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.coptic=hQ});var YQe=ye(()=>{var x1=kv(),Ftr=Oh();function dQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}dQ.prototype=new x1.baseCalendar;Ftr(dQ.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,x1.local.invalidYear),!1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.local.invalidYear),13},daysInYear:function(e){return this._validate(e,this.minMonth,this.minDay,x1.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,x1.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,x1.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,x1.local.invalidDate);return{century:ztr[Math.floor((n.year()-1)/100)+1]||\"\"}},toJD:function(e,t,r){var n=this._validate(e,t,r,x1.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 ztr={20:\"Fruitbat\",21:\"Anchovy\"};x1.calendars.discworld=dQ});var KQe=ye(()=>{var bw=kv(),Otr=Oh();function vQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}vQ.prototype=new bw.baseCalendar;Otr(vQ.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,bw.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,bw.local.invalidYear||bw.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,bw.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,bw.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)}});bw.calendars.ethiopian=vQ});var JQe=ye(()=>{var qx=kv(),qtr=Oh();function pQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}pQ.prototype=new qx.baseCalendar;qtr(pQ.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,P9(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&&P9(this.daysInYear(e),10)===5?30:t===9&&P9(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 P9(e,t){return e-t*Math.floor(e/t)}qx.calendars.hebrew=pQ});var $Qe=ye(()=>{var dC=kv(),Btr=Oh();function gQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}gQ.prototype=new dC.baseCalendar;Btr(gQ.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,dC.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,dC.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,dC.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)}});dC.calendars.islamic=gQ});var QQe=ye(()=>{var vC=kv(),Ntr=Oh();function mQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}mQ.prototype=new vC.baseCalendar;Ntr(mQ.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,vC.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,vC.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,vC.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)}});vC.calendars.julian=mQ});var tet=ye(()=>{var ug=kv(),Utr=Oh();function _Q(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}_Q.prototype=new ug.baseCalendar;Utr(_Q.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=yQ(e+8+17*20,365);return[Math.floor(t/20)+1,yQ(t,20)]},_toTzolkin:function(e){return e-=this.jdEpoch,[eet(e+20,20),eet(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 yQ(e,t){return e-t*Math.floor(e/t)}function eet(e,t){return yQ(e-1,t)+1}ug.calendars.mayan=_Q});var iet=ye(()=>{var ww=kv(),Vtr=Oh();function xQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}xQ.prototype=new ww.baseCalendar;var ret=ww.instance(\"gregorian\");Vtr(xQ.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,ww.local.invalidYear||ww.regionalOptions[\"\"].invalidYear);return ret.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,ww.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,ww.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)}});ww.calendars.nanakshahi=xQ});var net=ye(()=>{var Tw=kv(),Gtr=Oh();function bQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}bQ.prototype=new Tw.baseCalendar;Gtr(bQ.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,Tw.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,Tw.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,Tw.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=Tw.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=Tw.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 tS=kv(),Htr=Oh();function R9(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}function I9(e){var t=e-475;e<0&&t++;var r=.242197,n=r*t,i=r*(t+1),a=n-Math.floor(n),o=i-Math.floor(i);return a>o}R9.prototype=new tS.baseCalendar;Htr(R9.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\",\"Dey\",\"Bahman\",\"Esfand\"],monthNamesShort:[\"Far\",\"Ord\",\"Kho\",\"Tir\",\"Mor\",\"Sha\",\"Meh\",\"Aba\",\"Aza\",\"Dey\",\"Bah\",\"Esf\"],dayNames:[\"Yekshanbeh\",\"Doshanbeh\",\"Seshanbeh\",\"Chah\\u0101rshanbeh\",\"Panjshanbeh\",\"Jom'eh\",\"Shanbeh\"],dayNamesShort:[\"Yek\",\"Do\",\"Se\",\"Cha\",\"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,tS.local.invalidYear);return I9(t.year())},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,tS.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,tS.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=0;if(e>0)for(var a=1;a0?e-1:e)*365+i+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e)+.5;var t=475+(e-this.toJD(475,1,1))/365.242197,r=Math.floor(t);r<=0&&r--,e>this.toJD(r,12,I9(r)?30:29)&&(r++,r===0&&r++);var n=e-this.toJD(r,1,1)+1,i=n<=186?Math.ceil(n/31):Math.ceil((n-6)/30),a=e-this.toJD(r,i,1)+1;return this.newDate(r,i,a)}});tS.calendars.persian=R9;tS.calendars.jalali=R9});var oet=ye(()=>{var Aw=kv(),jtr=Oh(),D9=Aw.instance();function wQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}wQ.prototype=new Aw.baseCalendar;jtr(wQ.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,Aw.local.invalidYear),r=this._t2gYear(t.year());return D9.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 D9.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 D9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=D9.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)}});Aw.calendars.taiwan=wQ});var set=ye(()=>{var Sw=kv(),Wtr=Oh(),F9=Sw.instance();function TQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}TQ.prototype=new Sw.baseCalendar;Wtr(TQ.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,Sw.local.invalidYear),r=this._t2gYear(t.year());return F9.leapYear(r)},weekOfYear:function(i,t,r){var n=this._validate(i,this.minMonth,this.minDay,Sw.local.invalidYear),i=this._t2gYear(n.year());return F9.weekOfYear(i,n.month(),n.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,Sw.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,Sw.local.invalidDate),i=this._t2gYear(n.year());return F9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=F9.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)}});Sw.calendars.thai=TQ});var uet=ye(()=>{var Mw=kv(),Xtr=Oh();function AQ(e){this.local=this.regionalOptions[e||\"\"]||this.regionalOptions[\"\"]}AQ.prototype=new Mw.baseCalendar;Xtr(AQ.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,Mw.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,Mw.local.invalidMonth),n=r.toJD()-24e5+.5,i=0,a=0;an)return Bx[i]-Bx[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,Mw.local.invalidDate),i=12*(n.year()-1)+n.month()-15292,a=n.day()+Bx[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-Bx[r-1]+1;return this.newDate(o,s,l)},isValid:function(e,t,r){var n=Mw.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=Mw.baseCalendar.prototype._validate.apply(this,arguments);if(i.year<1276||i.year>1500)throw n.replace(/\\{0\\}/,this.local.name);return i}});Mw.calendars.ummalqura=AQ;var Bx=[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 fet=ye((rTr,cet)=>{\"use strict\";cet.exports=kv();WQe();XQe();ZQe();YQe();KQe();JQe();$Qe();QQe();tet();iet();net();aet();oet();set();uet()});var yet=ye((iTr,met)=>{\"use strict\";var det=fet(),pC=Dr(),vet=fs(),Ztr=vet.EPOCHJD,Ytr=vet.ONEDAY,EQ={valType:\"enumerated\",values:pC.sortObjectKeys(det.calendars),editType:\"calc\",dflt:\"gregorian\"},pet=function(e,t,r,n){var i={};return i[r]=EQ,pC.coerce(e,t,i,r,n)},Ktr=function(e,t,r,n){for(var i=0;i{\"use strict\";_et.exports=yet()});var rrr=ye((aTr,wet)=>{var bet=rye();bet.register([a1e(),W1e(),oxe(),Exe(),Uxe(),Obe(),Kbe(),O2e(),hwe(),Zwe(),F3e(),XEe(),zke(),E6e(),pLe(),WLe(),gPe(),UIe(),o8e(),A8e(),z8e(),K8e(),fRe(),ERe(),tFe(),bFe(),qBe(),qNe(),ZUe(),xVe(),LGe(),jGe(),pHe(),Eje(),Vje(),hWe(),bXe(),jXe(),MZe(),ZYe(),yKe(),BKe(),fJe(),SJe(),A$e(),G$e(),lQe(),GQe(),xet()]);wet.exports=bet});return rrr();})();\n", "/*!\n", " * pad-left \n", " *\n", @@ -4315,7 +4258,7 @@ "text": [ "Selected tier: Large (500-800 kWh)\n", "Battery size: 800 kWh\n", - "Total cost: 249.0 €\n" + "Total cost: 249.0 \u20ac\n" ] } ], @@ -4335,7 +4278,7 @@ "\n", "print(f'Selected tier: {tier}')\n", "print(f'Battery size: {battery_size:.0f} kWh')\n", - "print(f'Total cost: {total_cost:.1f} €')" + "print(f'Total cost: {total_cost:.1f} \u20ac')" ] }, { diff --git a/docs/notebooks/07-scenarios-and-periods.ipynb b/docs/notebooks/07-scenarios-and-periods.ipynb index 27dfdce70..044eae21b 100644 --- a/docs/notebooks/07-scenarios-and-periods.ipynb +++ b/docs/notebooks/07-scenarios-and-periods.ipynb @@ -198,7 +198,21 @@ "id": "12", "metadata": {}, "outputs": [], - "source": "flow_system = fx.FlowSystem(\n timesteps=timesteps,\n periods=periods,\n scenarios=scenarios,\n scenario_weights=scenario_weights,\n)\nflow_system.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\n\nprint(flow_system)" + "source": [ + "flow_system = fx.FlowSystem(\n", + " timesteps=timesteps,\n", + " periods=periods,\n", + " scenarios=scenarios,\n", + " scenario_weights=scenario_weights,\n", + ")\n", + "flow_system.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('electricity', '#f1c40f', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "\n", + "print(flow_system)" + ] }, { "cell_type": "markdown", @@ -325,10 +339,8 @@ "chp_size = flow_system.statistics.sizes['CHP(P_el)']\n", "total_cost = flow_system.solution['costs']\n", "\n", - "print('=== Investment Decision ===')\n", - "print(f'Optimal CHP size: {chp_size.round(1).to_pandas()} kW electrical')\n", - "print(f'Thermal capacity: {(chp_size * 0.50 / 0.35).round(1).to_pandas()} kW')\n", - "print(f'\\nExpected total cost: {total_cost.round(2).to_pandas()} €')" + "print(f'Optimal CHP: {float(chp_size.max()):.0f} kW electrical ({float(chp_size.max()) * 0.50 / 0.35:.0f} kW thermal)')\n", + "print(f'Expected cost: {float(total_cost.sum()):.0f} €')" ] }, { @@ -401,16 +413,13 @@ "metadata": {}, "outputs": [], "source": [ - "# CHP operation in harsh winter vs mild winter\n", + "# CHP operation summary by scenario\n", "chp_heat = flow_rates['CHP(Q_th)']\n", "\n", - "print('CHP Heat Output Statistics:')\n", "for scenario in scenarios:\n", - " scenario_data = chp_heat.sel(scenario=scenario)\n", - " print(f'\\n{scenario}:')\n", - " for period in periods:\n", - " period_data = scenario_data.sel(period=period)\n", - " print(f' {period}: avg={period_data.mean().item():.1f} kW, max={period_data.max().item():.1f} kW')" + " scenario_avg = float(chp_heat.sel(scenario=scenario).mean())\n", + " scenario_max = float(chp_heat.sel(scenario=scenario).max())\n", + " print(f'{scenario}: avg {scenario_avg:.0f} kW, max {scenario_max:.0f} kW')" ] }, { @@ -434,12 +443,12 @@ "fs_mild = flow_system.transform.sel(scenario='Mild Winter')\n", "fs_mild.optimize(fx.solvers.HighsSolver(mip_gap=0.01))\n", "\n", - "chp_size_mild = fs_mild.statistics.sizes['CHP(P_el)']\n", + "chp_size_mild = float(fs_mild.statistics.sizes['CHP(P_el)'].max())\n", + "chp_size_both = float(chp_size.max())\n", "\n", - "print('=== Comparison ===')\n", - "print(f'CHP size (both scenarios): {chp_size.max(\"scenario\").round(2).values} kW')\n", - "print(f'CHP size (mild only): {chp_size_mild.round(2).values} kW')\n", - "print(f'\\nPlanning for uncertainty adds {(chp_size - chp_size_mild).round(2).values} kW capacity')" + "print(\n", + " f'CHP sizing: {chp_size_mild:.0f} kW (mild only) vs {chp_size_both:.0f} kW (both scenarios) → +{chp_size_both - chp_size_mild:.0f} kW for uncertainty'\n", + ")" ] }, { diff --git a/docs/notebooks/08a-aggregation.ipynb b/docs/notebooks/08a-aggregation.ipynb index 376dbdaca..9e0961ab7 100644 --- a/docs/notebooks/08a-aggregation.ipynb +++ b/docs/notebooks/08a-aggregation.ipynb @@ -224,12 +224,11 @@ "source": [ "solver = fx.solvers.HighsSolver(mip_gap=0.01)\n", "\n", - "# Resample from 1h to 4h resolution\n", + "# Resample from 15min to 4h resolution\n", "fs_resampled = flow_system.transform.resample('4h')\n", "\n", - "print(f'Original: {len(flow_system.timesteps)} timesteps')\n", - "print(f'Resampled: {len(fs_resampled.timesteps)} timesteps')\n", - "print(f'Reduction: {(1 - len(fs_resampled.timesteps) / len(flow_system.timesteps)) * 100:.0f}%')" + "reduction = (1 - len(fs_resampled.timesteps) / len(flow_system.timesteps)) * 100\n", + "print(f'Resampled: {len(flow_system.timesteps)} → {len(fs_resampled.timesteps)} timesteps ({reduction:.0f}% reduction)')" ] }, { @@ -244,8 +243,7 @@ "fs_resampled.optimize(solver)\n", "time_resampled = timeit.default_timer() - start\n", "\n", - "print(f'\\nResampled optimization: {time_resampled:.2f} seconds')\n", - "print(f'Cost: {fs_resampled.solution[\"costs\"].item():.2f} €')" + "print(f'Resampled: {time_resampled:.1f}s, {fs_resampled.solution[\"costs\"].item():,.0f} €')" ] }, { @@ -272,11 +270,10 @@ "fs_sizing.optimize(solver)\n", "time_stage1 = timeit.default_timer() - start\n", "\n", - "print('=== Stage 1: Sizing ===')\n", - "print(f'Time: {time_stage1:.2f} seconds')\n", - "print('\\nOptimized sizes:')\n", - "for name, size in fs_sizing.statistics.sizes.items():\n", - " print(f' {name}: {float(size.item()):.1f}')" + "sizes = {k: float(v.item()) for k, v in fs_sizing.statistics.sizes.items()}\n", + "print(\n", + " f'Stage 1 (sizing): {time_stage1:.1f}s → CHP {sizes[\"CHP(Q_th)\"]:.0f}, Boiler {sizes[\"Boiler(Q_th)\"]:.0f}, Storage {sizes[\"Storage\"]:.0f}'\n", + ")" ] }, { @@ -292,10 +289,9 @@ "fs_dispatch.optimize(solver)\n", "time_stage2 = timeit.default_timer() - start\n", "\n", - "print('=== Stage 2: Dispatch ===')\n", - "print(f'Time: {time_stage2:.2f} seconds')\n", - "print(f'Cost: {fs_dispatch.solution[\"costs\"].item():.2f} €')\n", - "print(f'\\nTotal two-stage time: {time_stage1 + time_stage2:.2f} seconds')" + "print(\n", + " f'Stage 2 (dispatch): {time_stage2:.1f}s, {fs_dispatch.solution[\"costs\"].item():,.0f} € (total: {time_stage1 + time_stage2:.1f}s)'\n", + ")" ] }, { @@ -320,9 +316,7 @@ "fs_full.optimize(solver)\n", "time_full = timeit.default_timer() - start\n", "\n", - "print('=== Full Optimization ===')\n", - "print(f'Time: {time_full:.2f} seconds')\n", - "print(f'Cost: {fs_full.solution[\"costs\"].item():.2f} €')" + "print(f'Full optimization: {time_full:.1f}s, {fs_full.solution[\"costs\"].item():,.0f} €')" ] }, { diff --git a/docs/notebooks/08b-rolling-horizon.ipynb b/docs/notebooks/08b-rolling-horizon.ipynb index 94400ebf5..aa652df69 100644 --- a/docs/notebooks/08b-rolling-horizon.ipynb +++ b/docs/notebooks/08b-rolling-horizon.ipynb @@ -16,6 +16,7 @@ }, { "cell_type": "code", + "execution_count": 1, "id": "2", "metadata": { "ExecuteTime": { @@ -23,19 +24,6 @@ "start_time": "2025-12-13T19:01:40.936227Z" } }, - "source": [ - "import timeit\n", - "\n", - "import pandas as pd\n", - "import plotly.express as px\n", - "import plotly.graph_objects as go\n", - "import xarray as xr\n", - "from plotly.subplots import make_subplots\n", - "\n", - "import flixopt as fx\n", - "\n", - "fx.CONFIG.notebook()" - ], "outputs": [ { "data": { @@ -48,7 +36,19 @@ "output_type": "execute_result" } ], - "execution_count": 1 + "source": [ + "import timeit\n", + "\n", + "import pandas as pd\n", + "import plotly.express as px\n", + "import plotly.graph_objects as go\n", + "import xarray as xr\n", + "from plotly.subplots import make_subplots\n", + "\n", + "import flixopt as fx\n", + "\n", + "fx.CONFIG.notebook()" + ] }, { "cell_type": "markdown", @@ -58,6 +58,7 @@ }, { "cell_type": "code", + "execution_count": null, "id": "4", "metadata": { "ExecuteTime": { @@ -65,6 +66,7 @@ "start_time": "2025-12-13T19:01:44.973157Z" } }, + "outputs": [], "source": [ "# Load time series data (15-min resolution)\n", "data = pd.read_csv('data/Zeitreihen2020.csv', index_col=0, parse_dates=True).sort_index()\n", @@ -79,15 +81,14 @@ "electricity_price = data['Strompr.€/MWh'].to_numpy()\n", "gas_price = data['Gaspr.€/MWh'].to_numpy()\n", "\n", - "print(f'Timesteps: {len(timesteps)} ({len(timesteps) / 96:.0f} days at 15-min resolution)')\n", - "print(f'Heat demand: {heat_demand.min():.1f} - {heat_demand.max():.1f} MW')\n", - "print(f'Electricity price: {electricity_price.min():.1f} - {electricity_price.max():.1f} €/MWh')" - ], - "outputs": [], - "execution_count": null + "print(\n", + " f'{len(timesteps)} timesteps ({len(timesteps) / 96:.0f} days), heat {heat_demand.min():.0f}-{heat_demand.max():.0f} MW'\n", + ")" + ] }, { "cell_type": "code", + "execution_count": 3, "id": "5", "metadata": { "ExecuteTime": { @@ -95,6 +96,15 @@ "start_time": "2025-12-13T19:01:45.183230Z" } }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "System: 1344 timesteps\n" + ] + } + ], "source": [ "def build_system(timesteps, heat_demand, electricity_demand, electricity_price, gas_price):\n", " \"\"\"Build a district heating system with CHP, boiler, and storage.\"\"\"\n", @@ -179,17 +189,7 @@ "\n", "flow_system = build_system(timesteps, heat_demand, electricity_demand, electricity_price, gas_price)\n", "print(f'System: {len(timesteps)} timesteps')" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "System: 1344 timesteps\n" - ] - } - ], - "execution_count": 3 + ] }, { "cell_type": "markdown", @@ -203,6 +203,7 @@ }, { "cell_type": "code", + "execution_count": null, "id": "7", "metadata": { "ExecuteTime": { @@ -210,6 +211,7 @@ "start_time": "2025-12-13T19:01:45.486690Z" } }, + "outputs": [], "source": [ "solver = fx.solvers.HighsSolver()\n", "\n", @@ -218,94 +220,8 @@ "fs_full.optimize(solver)\n", "time_full = timeit.default_timer() - start\n", "\n", - "print(f'Full optimization: {time_full:.2f} seconds')\n", - "print(f'Cost: {fs_full.solution[\"costs\"].item():,.0f} €')" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001B[2m2025-12-13 20:01:45.496\u001B[0m \u001B[33mWARNING \u001B[0m │ FlowSystem is not connected_and_transformed. Connecting and transforming data now.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Writing constraints.: 100%|\u001B[38;2;128;191;255m██████████\u001B[0m| 74/74 [00:00<00:00, 152.15it/s]\n", - "Writing continuous variables.: 100%|\u001B[38;2;128;191;255m██████████\u001B[0m| 56/56 [00:00<00:00, 378.63it/s]\n", - "Writing binary variables.: 100%|\u001B[38;2;128;191;255m██████████\u001B[0m| 11/11 [00:00<00:00, 335.35it/s]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Running HiGHS 1.12.0 (git hash: 755a8e0): Copyright (c) 2025 HiGHS under MIT licence terms\n", - "MIP linopy-problem-lqmu4n6b has 53792 rows; 51102 cols; 168036 nonzeros; 14784 integer variables (14784 binary)\n", - "Coefficient ranges:\n", - " Matrix [1e-05, 2e+04]\n", - " Cost [1e+00, 1e+00]\n", - " Bound [1e+00, 1e+03]\n", - " RHS [1e-05, 2e+02]\n", - "WARNING: Problem has some excessively small row bounds\n", - "Presolving model\n", - "29568 rows, 24168 cols, 76581 nonzeros 0s\n", - "25322 rows, 18981 cols, 72124 nonzeros 0s\n", - "24294 rows, 18173 cols, 69378 nonzeros 0s\n", - "Presolve reductions: rows 24294(-29498); columns 18173(-32929); nonzeros 69378(-98658) \n", - "\n", - "Solving MIP model with:\n", - " 24294 rows\n", - " 18173 cols (13978 binary, 0 integer, 0 implied int., 4195 continuous, 0 domain fixed)\n", - " 69378 nonzeros\n", - "\n", - "Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic;\n", - " I => Shifting; J => Feasibility jump; L => Sub-MIP; P => Empty MIP; R => Randomized rounding;\n", - " S => Solve LP; T => Evaluate node; U => Unbounded; X => User solution; Y => HiGHS solution;\n", - " Z => ZI Round; l => Trivial lower; p => Trivial point; u => Trivial upper; z => Trivial zero\n", - "\n", - " Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work \n", - "Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time\n", - "\n", - " 0 0 0 0.00% 1030491.76973 inf inf 0 0 0 0 0.5s\n", - " 0 0 0 0.00% 1540084.733469 inf inf 0 0 0 9609 1.0s\n", - " C 0 0 0 0.00% 1540120.790012 1662404.794591 7.36% 10533 2312 0 13317 3.5s\n", - " 0 0 0 0.00% 1540129.709896 1662404.794591 7.36% 10993 2339 0 14788 8.6s\n", - " 0 0 0 0.00% 1540135.248328 1662404.794591 7.35% 10379 2761 0 17251 13.8s\n", - " 0 0 0 0.00% 1540139.906068 1662404.794591 7.35% 10794 2560 0 18445 19.2s\n", - " 0 0 0 0.00% 1540142.257624 1662404.794591 7.35% 10289 2512 0 19682 24.4s\n", - " L 0 0 0 0.00% 1540142.371061 1591562.49514 3.23% 10213 2579 0 19922 31.8s\n", - " L 0 0 0 0.00% 1540142.371061 1540200.034522 0.00% 10213 2579 0 23652 68.0s\n", - " 1 0 1 100.00% 1540142.371061 1540200.034522 0.00% 9659 2579 0 31373 68.0s\n", - "\n", - "Solving report\n", - " Model linopy-problem-lqmu4n6b\n", - " Status Optimal\n", - " Primal bound 1540200.03452\n", - " Dual bound 1540142.37106\n", - " Gap 0.00374% (tolerance: 1%)\n", - " P-D integral 3.24885572414\n", - " Solution status feasible\n", - " 1540200.03452 (objective)\n", - " 0 (bound viol.)\n", - " 6.93576991062e-07 (int. viol.)\n", - " 0 (row viol.)\n", - " Timing 68.01\n", - " Max sub-MIP depth 2\n", - " Nodes 1\n", - " Repair LPs 0\n", - " LP iterations 31373\n", - " 0 (strong br.)\n", - " 10313 (separation)\n", - " 11450 (heuristics)\n", - "Full optimization: 70.87 seconds\n", - "Cost: 1,540,200 €\n" - ] - } - ], - "execution_count": 4 + "print(f'Full: {time_full:.1f}s, {fs_full.solution[\"costs\"].item():,.0f} €')" + ] }, { "cell_type": "markdown", @@ -315,6 +231,7 @@ }, { "cell_type": "code", + "execution_count": null, "id": "9", "metadata": { "ExecuteTime": { @@ -322,6 +239,7 @@ "start_time": "2025-12-13T19:02:56.525964Z" } }, + "outputs": [], "source": [ "start = timeit.default_timer()\n", "fs_rolling = flow_system.copy()\n", @@ -332,161 +250,8 @@ ")\n", "time_rolling = timeit.default_timer() - start\n", "\n", - "print(f'Rolling horizon: {time_rolling:.2f} seconds ({len(segments)} segments)')\n", - "print(f'Cost: {fs_rolling.solution[\"costs\"].item():,.0f} €')" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Segment 1/7 (timesteps 0-288): 0%| | 0/7 [00:00" - ], "text/html": [ "\n", @@ -560,6 +307,9 @@ " \n", " \n", "\n" + ], + "text/plain": [ + "" ] }, "execution_count": 6, @@ -567,7 +317,22 @@ "output_type": "execute_result" } ], - "execution_count": 6 + "source": [ + "cost_full = fs_full.solution['costs'].item()\n", + "cost_rolling = fs_rolling.solution['costs'].item()\n", + "cost_gap = (cost_rolling - cost_full) / cost_full * 100\n", + "\n", + "results = pd.DataFrame(\n", + " {\n", + " 'Method': ['Full optimization', 'Rolling horizon'],\n", + " 'Time [s]': [time_full, time_rolling],\n", + " 'Cost [€]': [cost_full, cost_rolling],\n", + " 'Cost Gap [%]': [0.0, cost_gap],\n", + " }\n", + ").set_index('Method')\n", + "\n", + "results.style.format({'Time [s]': '{:.2f}', 'Cost [€]': '{:,.0f}', 'Cost Gap [%]': '{:.2f}'})" + ] }, { "cell_type": "markdown", @@ -579,6 +344,7 @@ }, { "cell_type": "code", + "execution_count": 7, "id": "13", "metadata": { "ExecuteTime": { @@ -586,9 +352,6 @@ "start_time": "2025-12-13T19:03:27.661Z" } }, - "source": [ - "fs_full.statistics.plot.balance('Heat').figure.update_layout(title='Heat Balance (Full)')" - ], "outputs": [ { "data": { @@ -693,7 +456,7 @@ "\n", "`).concat($R(e),`\n", "`));var s=new U_({actual:e,expected:t,message:r,operator:i,stackStartFn:n});throw s.generatedMessage=o,s}}Ef.match=function e(t,r,n){T4e(t,r,n,e,\"match\")};Ef.doesNotMatch=function e(t,r,n){T4e(t,r,n,e,\"doesNotMatch\")};function A4e(){for(var e=arguments.length,t=new Array(e),r=0;r{var xE=1e3,bE=xE*60,wE=bE*60,TE=wE*24,FEt=TE*365.25;M4e.exports=function(e,t){t=t||{};var r=typeof e;if(r===\"string\"&&e.length>0)return zEt(e);if(r===\"number\"&&isNaN(e)===!1)return t.long?qEt(e):OEt(e);throw new Error(\"val is not a non-empty string or a valid number. val=\"+JSON.stringify(e))};function zEt(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*FEt;case\"days\":case\"day\":case\"d\":return r*TE;case\"hours\":case\"hour\":case\"hrs\":case\"hr\":case\"h\":return r*wE;case\"minutes\":case\"minute\":case\"mins\":case\"min\":case\"m\":return r*bE;case\"seconds\":case\"second\":case\"secs\":case\"sec\":case\"s\":return r*xE;case\"milliseconds\":case\"millisecond\":case\"msecs\":case\"msec\":case\"ms\":return r;default:return}}}}function OEt(e){return e>=TE?Math.round(e/TE)+\"d\":e>=wE?Math.round(e/wE)+\"h\":e>=bE?Math.round(e/bE)+\"m\":e>=xE?Math.round(e/xE)+\"s\":e+\"ms\"}function qEt(e){return iD(e,TE,\"day\")||iD(e,wE,\"hour\")||iD(e,bE,\"minute\")||iD(e,xE,\"second\")||e+\" ms\"}function iD(e,t,r){if(!(e{Lc=k4e.exports=nW.debug=nW.default=nW;Lc.coerce=GEt;Lc.disable=UEt;Lc.enable=NEt;Lc.enabled=VEt;Lc.humanize=E4e();Lc.names=[];Lc.skips=[];Lc.formatters={};var iW;function BEt(e){var t=0,r;for(r in e)t=(t<<5)-t+e.charCodeAt(r),t|=0;return Lc.colors[Math.abs(t)%Lc.colors.length]}function nW(e){function t(){if(t.enabled){var r=t,n=+new Date,i=n-(iW||n);r.diff=i,r.prev=iW,r.curr=n,iW=n;for(var a=new Array(arguments.length),o=0;o{lp=P4e.exports=C4e();lp.log=WEt;lp.formatArgs=jEt;lp.save=XEt;lp.load=L4e;lp.useColors=HEt;lp.storage=typeof chrome!=\"undefined\"&&typeof chrome.storage!=\"undefined\"?chrome.storage.local:ZEt();lp.colors=[\"lightseagreen\",\"forestgreen\",\"goldenrod\",\"dodgerblue\",\"darkorchid\",\"crimson\"];function HEt(){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 jEt(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 WEt(){return typeof console==\"object\"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function XEt(e){try{e==null?lp.storage.removeItem(\"debug\"):lp.storage.debug=e}catch(t){}}function L4e(){var e;try{e=lp.storage.debug}catch(t){}return!e&&typeof process!=\"undefined\"&&\"env\"in process&&(e=process.env.DEBUG),e}lp.enable(L4e());function ZEt(){try{return window.localStorage}catch(e){}}});var N4e=ye((_dr,B4e)=>{var _A=sE(),V_=I4e()(\"stream-parser\");B4e.exports=KEt;var D4e=-1,nD=0,YEt=1,F4e=2;function KEt(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=JEt,e._skipBytes=$Et,t&&(e._passthrough=QEt),t?e._transform=tkt:e._write=ekt}function AE(e){V_(\"initializing parser stream\"),e._parserBytesLeft=0,e._parserBuffers=[],e._parserBuffered=0,e._parserState=D4e,e._parserCallback=null,typeof e.push==\"function\"&&(e._parserOutput=e.push.bind(e)),e._parserInit=!0}function JEt(e,t){_A(!this._parserCallback,'there is already a \"callback\" set!'),_A(isFinite(e)&&e>0,'can only buffer a finite number of bytes > 0, got \"'+e+'\"'),this._parserInit||AE(this),V_(\"buffering %o bytes\",e),this._parserBytesLeft=e,this._parserCallback=t,this._parserState=nD}function $Et(e,t){_A(!this._parserCallback,'there is already a \"callback\" set!'),_A(e>0,'can only skip > 0 bytes, got \"'+e+'\"'),this._parserInit||AE(this),V_(\"skipping %o bytes\",e),this._parserBytesLeft=e,this._parserCallback=t,this._parserState=YEt}function QEt(e,t){_A(!this._parserCallback,'There is already a \"callback\" set!'),_A(e>0,'can only pass through > 0 bytes, got \"'+e+'\"'),this._parserInit||AE(this),V_(\"passing through %o bytes\",e),this._parserBytesLeft=e,this._parserCallback=t,this._parserState=F4e}function ekt(e,t,r){this._parserInit||AE(this),V_(\"write(%o bytes)\",e.length),typeof t==\"function\"&&(r=t),O4e(this,e,null,r)}function tkt(e,t,r){this._parserInit||AE(this),V_(\"transform(%o bytes)\",e.length),typeof t!=\"function\"&&(t=this._parserOutput),O4e(this,e,t,r)}function z4e(e,t,r,n){return e._parserBytesLeft<=0?n(new Error(\"got data but not currently parsing anything\")):t.length<=e._parserBytesLeft?function(){return R4e(e,t,r,n)}:function(){var i=t.slice(0,e._parserBytesLeft);return R4e(e,i,r,function(a){if(a)return n(a);if(t.length>i.length)return function(){return z4e(e,t.slice(i.length),r,n)}})}}function R4e(e,t,r,n){if(e._parserBytesLeft-=t.length,V_(\"%o bytes left for stream piece\",e._parserBytesLeft),e._parserState===nD?(e._parserBuffers.push(t),e._parserBuffered+=t.length):e._parserState===F4e&&r(t),e._parserBytesLeft===0){var i=e._parserCallback;if(i&&e._parserState===nD&&e._parserBuffers.length>1&&(t=Buffer.concat(e._parserBuffers,e._parserBuffered)),e._parserState!==nD&&(t=null),e._parserCallback=null,e._parserBuffered=0,e._parserState=D4e,e._parserBuffers.splice(0),i){var a=[];t&&a.push(t),r&&a.push(r);var o=i.length>a.length;o&&a.push(q4e(n));var s=i.apply(e,a);if(!o||n===s)return n}}else return n}var O4e=q4e(z4e);function q4e(e){return function(){for(var t=e.apply(this,arguments);typeof t==\"function\";)t=t();return t}}});var rc=ye(Hy=>{\"use strict\";var U4e=RSe().Transform,rkt=N4e();function SE(){U4e.call(this,{readableObjectMode:!0})}SE.prototype=Object.create(U4e.prototype);SE.prototype.constructor=SE;rkt(SE.prototype);Hy.ParserStream=SE;Hy.sliceEq=function(e,t,r){for(var n=t,i=0;i{\"use strict\";var xA=rc().readUInt16BE,oW=rc().readUInt32BE;function ME(e,t){if(e.length<4+t)return null;var r=oW(e,t);return e.length>4&15,n=e[4]&15,i=e[5]>>4&15,a=xA(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}oD.exports.readSizeFromMeta=function(e){var t={sizes:[],transforms:[],item_inf:{},item_loc:{}};if(skt(e,t),!!t.sizes.length){var r=lkt(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 sD(e,t){var r=new Error(e);return r.code=t,r}function ukt(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 sD(\"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 sD(\"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 sD(\"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 sD(\"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)})};sW.exports.ExifParser=jy;sW.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 H4e=ye((Tdr,G4e)=>{\"use strict\";var ckt=rc().str2arr,fkt=rc().sliceEq,hkt=rc().readUInt32BE,uD=V4e(),dkt=lD(),vkt=ckt(\"ftyp\");G4e.exports=function(e){if(fkt(e,4,vkt)){var t=uD.unbox(e,0);if(t){var r=uD.getMimeType(t.data);if(r){for(var n,i=t.end;;){var a=uD.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=uD.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=hkt(e,o.exif_location.offset),u=e.slice(o.exif_location.offset+l+4,o.exif_location.offset+o.exif_location.length),c=dkt.get_orientation(u);c>0&&(s.orientation=c)}return s}}}}}}});var X4e=ye((Adr,W4e)=>{\"use strict\";var pkt=rc().str2arr,gkt=rc().sliceEq,j4e=rc().readUInt16LE,mkt=pkt(\"BM\");W4e.exports=function(e){if(!(e.length<26)&&gkt(e,0,mkt))return{width:j4e(e,18),height:j4e(e,22),type:\"bmp\",mime:\"image/bmp\",wUnits:\"px\",hUnits:\"px\"}}});var $4e=ye((Sdr,J4e)=>{\"use strict\";var K4e=rc().str2arr,Z4e=rc().sliceEq,Y4e=rc().readUInt16LE,ykt=K4e(\"GIF87a\"),_kt=K4e(\"GIF89a\");J4e.exports=function(e){if(!(e.length<10)&&!(!Z4e(e,0,ykt)&&!Z4e(e,0,_kt)))return{width:Y4e(e,6),height:Y4e(e,8),type:\"gif\",mime:\"image/gif\",wUnits:\"px\",hUnits:\"px\"}}});var tEe=ye((Mdr,eEe)=>{\"use strict\";var lW=rc().readUInt16LE,xkt=0,bkt=1,Q4e=16;eEe.exports=function(e){var t=lW(e,0),r=lW(e,2),n=lW(e,4);if(!(t!==xkt||r!==bkt||!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 iEe=ye((Edr,rEe)=>{\"use strict\";var uW=rc().readUInt16BE,wkt=rc().str2arr,Tkt=rc().sliceEq,Akt=lD(),Skt=wkt(\"Exif\\0\\0\");rEe.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=uW(e,t)-2,t+=2}else return;if(r===217||r===218)return;var i;if(r===225&&n>=10&&Tkt(e,t,Skt)&&(i=Akt.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 lEe=ye((kdr,sEe)=>{\"use strict\";var oEe=rc().str2arr,nEe=rc().sliceEq,aEe=rc().readUInt32BE,Mkt=oEe(`\\x89PNG\\r\n", - "\u001A\n", + "\u001a\n", "`),Ekt=oEe(\"IHDR\");sEe.exports=function(e){if(!(e.length<24)&&nEe(e,0,Mkt)&&nEe(e,12,Ekt))return{width:aEe(e,16),height:aEe(e,20),type:\"png\",mime:\"image/png\",wUnits:\"px\",hUnits:\"px\"}}});var fEe=ye((Cdr,cEe)=>{\"use strict\";var kkt=rc().str2arr,Ckt=rc().sliceEq,uEe=rc().readUInt32BE,Lkt=kkt(\"8BPS\\0\u0001\");cEe.exports=function(e){if(!(e.length<22)&&Ckt(e,0,Lkt))return{width:uEe(e,18),height:uEe(e,14),type:\"psd\",mime:\"image/vnd.adobe.photoshop\",wUnits:\"px\",hUnits:\"px\"}}});var vEe=ye((Ldr,dEe)=>{\"use strict\";function Pkt(e){return e===32||e===9||e===13||e===10}function bA(e){return typeof e==\"number\"&&isFinite(e)&&e>0}function Ikt(e){var t=0,r=e.length;for(e[0]===239&&e[1]===187&&e[2]===191&&(t=3);t]*>/,Dkt=/^<([-_.:a-zA-Z0-9]+:)?svg\\s/,Fkt=/[^-]\\bwidth=\"([^%]+?)\"|[^-]\\bwidth='([^%]+?)'/,zkt=/\\bheight=\"([^%]+?)\"|\\bheight='([^%]+?)'/,Okt=/\\bview[bB]ox=\"(.+?)\"|\\bview[bB]ox='(.+?)'/,hEe=/in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;function qkt(e){var t=e.match(Fkt),r=e.match(zkt),n=e.match(Okt);return{width:t&&(t[1]||t[2]),height:r&&(r[1]||r[2]),viewbox:n&&(n[1]||n[2])}}function Um(e){return hEe.test(e)?e.match(hEe)[0]:\"px\"}dEe.exports=function(e){if(Ikt(e)){for(var t=\"\",r=0;r{\"use strict\";var mEe=rc().str2arr,pEe=rc().sliceEq,Bkt=rc().readUInt16LE,Nkt=rc().readUInt16BE,Ukt=rc().readUInt32LE,Vkt=rc().readUInt32BE,Gkt=mEe(\"II*\\0\"),Hkt=mEe(\"MM\\0*\");function cD(e,t,r){return r?Nkt(e,t):Bkt(e,t)}function cW(e,t,r){return r?Vkt(e,t):Ukt(e,t)}function gEe(e,t,r){var n=cD(e,t+2,r),i=cW(e,t+4,r);return i!==1||n!==3&&n!==4?null:n===3?cD(e,t+8,r):cW(e,t+8,r)}yEe.exports=function(e){if(!(e.length<8)&&!(!pEe(e,0,Gkt)&&!pEe(e,0,Hkt))){var t=e[0]===77,r=cW(e,4,t)-8;if(!(r<0)){var n=r+8;if(!(e.length-n<2)){var i=cD(e,n+0,t)*12;if(!(i<=0)&&(n+=2,!(e.length-n{\"use strict\";var wEe=rc().str2arr,xEe=rc().sliceEq,bEe=rc().readUInt16LE,fW=rc().readUInt32LE,jkt=lD(),Wkt=wEe(\"RIFF\"),Xkt=wEe(\"WEBP\");function Zkt(e,t){if(!(e[t+3]!==157||e[t+4]!==1||e[t+5]!==42))return{width:bEe(e,t+6)&16383,height:bEe(e,t+8)&16383,type:\"webp\",mime:\"image/webp\",wUnits:\"px\",hUnits:\"px\"}}function Ykt(e,t){if(e[t]===47){var r=fW(e,t+1);return{width:(r&16383)+1,height:(r>>14&16383)+1,type:\"webp\",mime:\"image/webp\",wUnits:\"px\",hUnits:\"px\"}}}function Kkt(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||Zkt(e,t+8):a===\"VP8L\"&&o>=9?r=r||Ykt(e,t+8):a===\"VP8X\"&&o>=10?r=r||Kkt(e,t+8):a===\"EXIF\"&&(n=jkt.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 MEe=ye((Rdr,SEe)=>{\"use strict\";SEe.exports={avif:H4e(),bmp:X4e(),gif:$4e(),ico:tEe(),jpeg:iEe(),png:lEe(),psd:fEe(),svg:vEe(),tiff:_Ee(),webp:AEe()}});var EEe=ye((Ddr,dW)=>{\"use strict\";var hW=MEe();function Jkt(e){for(var t=Object.keys(hW),r=0;r{\"use strict\";var $kt=EEe(),Qkt=Py().IMAGE_URL_PREFIX,eCt=c2().Buffer;kEe.getImageSize=function(e){var t=e.replace(Qkt,\"\"),r=new eCt(t,\"base64\");return $kt(r)}});var IEe=ye((zdr,PEe)=>{\"use strict\";var LEe=Dr(),tCt=ZT(),rCt=Eo(),fD=ho(),iCt=Dr().maxRowLength,nCt=CEe().getImageSize;PEe.exports=function(t,r){var n,i;if(r._hasZ)n=r.z.length,i=iCt(r.z);else if(r._hasSource){var a=nCt(r.source);n=a.height,i=a.width}var o=fD.getFromId(t,r.xaxis||\"x\"),s=fD.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 lCt=Oa(),A2=Dr(),REe=A2.strTranslate,uCt=Wp(),cCt=ZT(),fCt=QV(),hCt=f8().STYLE;DEe.exports=function(t,r,n,i){var a=r.xaxis,o=r.yaxis,s=!t._context._exportedPlot&&fCt();A2.makeTraceGroups(i,n,\"im\").each(function(l){var u=lCt.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,_=c.y0,b=c.w,p=c.h,k=f.dx,E=f.dy,S,L,x,C,M,g;for(g=0;S===void 0&&g0;)L=a.c2p(v+g*k),g--;for(g=0;C===void 0&&g0;)M=o.c2p(_+g*E),g--;if(Lj[0];if(re||oe){var _e=S+T/2,Ee=C+z/2;H+=\"transform:\"+REe(_e+\"px\",Ee+\"px\")+\"scale(\"+(re?-1:1)+\",\"+(oe?-1:1)+\")\"+REe(-_e+\"px\",-Ee+\"px\")+\";\"}}Z.attr(\"style\",H);var Ce=new Promise(function(me){if(f._hasZ)me();else if(f._hasSource)if(f._canvas&&f._canvas.el.width===b&&f._canvas.el.height===p&&f._canvas.source===f.source)me();else{var ie=document.createElement(\"canvas\");ie.width=b,ie.height=p;var Se=ie.getContext(\"2d\",{willReadFrequently:!0});f._image=f._image||new Image;var Le=f._image;Le.onload=function(){Se.drawImage(Le,0,0),f._canvas={el:ie,source:f.source},me()},Le.setAttribute(\"src\",f.source)}}).then(function(){var me,ie;if(f._hasZ)ie=G(function(Ae,Fe){var Pe=d[Fe][Ae];return A2.isTypedArray(Pe)&&(Pe=Array.from(Pe)),Pe}),me=ie.toDataURL(\"image/png\");else if(f._hasSource)if(h)me=f.source;else{var Se=f._canvas.el.getContext(\"2d\",{willReadFrequently:!0}),Le=Se.getImageData(0,0,b,p).data;ie=G(function(Ae,Fe){var Pe=4*(Fe*b+Ae);return[Le[Pe],Le[Pe+1],Le[Pe+2],Le[Pe+3]]}),me=ie.toDataURL(\"image/png\")}Z.attr({\"xlink:href\":me,height:z,width:T,x:S,y:C})});t._promises.push(Ce)})}});var OEe=ye((qdr,zEe)=>{\"use strict\";var dCt=Oa();zEe.exports=function(t){dCt.select(t).selectAll(\".im image\").style(\"opacity\",function(r){return r[0].trace.opacity})}});var UEe=ye((Bdr,NEe)=>{\"use strict\";var qEe=vf(),BEe=Dr(),hD=BEe.isArrayOrTypedArray,vCt=ZT();NEe.exports=function(t,r,n){var i=t.cd[0],a=i.trace,o=t.xa,s=t.ya;if(!(qEe.inbox(r-i.x0,r-(i.x0+i.w*a.dx),0)>0||qEe.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=vCt.colormodel[a.colormodel],_=v.colormodel||a.colormodel,b=_.length,p=a._scaler(c),k=v.suffix,E=[];(a.hovertemplate||h)&&(E.push(\"[\"+[p[0]+k[0],p[1]+k[1],p[2]+k[2]].join(\", \")),b===4&&E.push(\", \"+p[3]+k[3]),E.push(\"]\"),E=E.join(\"\"),t.extraText=_.toUpperCase()+\": \"+E);var S;hD(a.hovertext)&&hD(a.hovertext[u])?S=a.hovertext[u][l]:hD(a.text)&&hD(a.text[u])&&(S=a.text[u][l]);var L=s.c2p(i.y0+(u+.5)*a.dy),x=i.x0+(l+.5)*a.dx,C=i.y0+(u+.5)*a.dy,M=\"[\"+c.slice(0,a.colormodel.length).join(\", \")+\"]\";return[BEe.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:p,xVal:x,xLabelVal:x,yVal:C,yLabelVal:C,zLabelVal:M,text:S,hovertemplateLabels:{zLabel:M,colorLabel:E,\"color[0]Label\":p[0]+k[0],\"color[1]Label\":p[1]+k[1],\"color[2]Label\":p[2]+k[2],\"color[3]Label\":p[3]+k[3]}})]}}}});var GEe=ye((Ndr,VEe)=>{\"use strict\";VEe.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 jEe=ye((Udr,HEe)=>{\"use strict\";HEe.exports={attributes:uH(),supplyDefaults:U3e(),calc:IEe(),plot:FEe(),style:OEe(),hoverPoints:UEe(),eventData:GEe(),moduleType:\"trace\",name:\"image\",basePlotModule:ph(),categories:[\"cartesian\",\"svg\",\"2dMap\",\"noSortingByValue\"],animatable:!1,meta:{}}});var XEe=ye((Vdr,WEe)=>{\"use strict\";WEe.exports=jEe()});var S2=ye((Gdr,YEe)=>{\"use strict\";var pCt=Gl(),gCt=Cc().attributes,mCt=ec(),yCt=Lh(),{hovertemplateAttrs:_Ct,texttemplateAttrs:xCt,templatefallbackAttrs:ZEe}=Ll(),EE=Ao().extendFlat,bCt=Pd().pattern,dD=mCt({editType:\"plot\",arrayOk:!0,colorEditType:\"plot\"});YEe.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:yCt.defaultLine,arrayOk:!0,editType:\"style\"},width:{valType:\"number\",min:0,dflt:0,arrayOk:!0,editType:\"style\"},editType:\"calc\"},pattern:bCt,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:EE({},pCt.hoverinfo,{flags:[\"label\",\"text\",\"value\",\"percent\",\"name\"]}),hovertemplate:_Ct({},{keys:[\"label\",\"color\",\"value\",\"percent\",\"text\"]}),hovertemplatefallback:ZEe(),texttemplate:xCt({editType:\"plot\"},{keys:[\"label\",\"color\",\"value\",\"percent\",\"text\"]}),texttemplatefallback:ZEe({editType:\"plot\"}),textposition:{valType:\"enumerated\",values:[\"inside\",\"outside\",\"auto\",\"none\"],dflt:\"auto\",arrayOk:!0,editType:\"plot\"},textfont:EE({},dD,{}),insidetextorientation:{valType:\"enumerated\",values:[\"horizontal\",\"radial\",\"tangential\",\"auto\"],dflt:\"auto\",editType:\"plot\"},insidetextfont:EE({},dD,{}),outsidetextfont:EE({},dD,{}),automargin:{valType:\"boolean\",dflt:!1,editType:\"plot\"},title:{text:{valType:\"string\",dflt:\"\",editType:\"plot\"},font:EE({},dD,{}),position:{valType:\"enumerated\",values:[\"top left\",\"top center\",\"top right\",\"middle center\",\"bottom left\",\"bottom center\",\"bottom right\"],editType:\"plot\"},editType:\"plot\"},domain:gCt({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 M2=ye((Hdr,$Ee)=>{\"use strict\";var wCt=Eo(),kE=Dr(),TCt=S2(),ACt=Cc().defaults,SCt=r0().handleText,MCt=Dr().coercePattern;function KEe(e,t){var r=kE.isArrayOrTypedArray(e),n=kE.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 JEe(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\");MCt(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 ECt(e,t,r,n){function i(k,E){return kE.coerce(e,t,TCt,k,E)}var a=i(\"labels\"),o=i(\"values\"),s=KEe(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,JEe(e,t,n,i,!0),i(\"scalegroup\");var u=i(\"text\"),c=i(\"texttemplate\");i(\"texttemplatefallback\");var f;if(c||(f=i(\"textinfo\",kE.isArrayOrTypedArray(u)?\"text+percent\":\"percent\")),i(\"hovertext\"),i(\"hovertemplate\"),i(\"hovertemplatefallback\"),c||f&&f!==\"none\"){var h=i(\"textposition\");SCt(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\");ACt(t,n,i);var _=i(\"hole\"),b=i(\"title.text\");if(b){var p=i(\"title.position\",_?\"middle center\":\"top center\");!_&&p===\"middle center\"&&(t.title.position=\"top center\"),kE.coerceFont(i,\"title.font\",n.font)}i(\"sort\"),i(\"direction\"),i(\"rotation\"),i(\"pull\")}$Ee.exports={handleLabelsAndValues:KEe,handleMarkerDefaults:JEe,supplyDefaults:ECt}});var vD=ye((jdr,QEe)=>{\"use strict\";QEe.exports={hiddenlabels:{valType:\"data_array\",editType:\"calc\"},piecolorway:{valType:\"colorlist\",editType:\"calc\"},extendpiecolors:{valType:\"boolean\",dflt:!0,editType:\"calc\"}}});var tke=ye((Wdr,eke)=>{\"use strict\";var kCt=Dr(),CCt=vD();eke.exports=function(t,r){function n(i,a){return kCt.coerce(t,r,CCt,i,a)}n(\"hiddenlabels\"),n(\"piecolorway\",r.colorway),n(\"extendpiecolors\")}});var wA=ye((Xdr,nke)=>{\"use strict\";var LCt=Eo(),vW=cd(),PCt=ka(),ICt={};function RCt(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 S=t.type===\"funnelarea\"?_:t.sort;return S&&r.sort(function(L,x){return x.v-L.v}),r[0]&&(r[0].vTotal=v),r}function rke(e){return function(r,n){return!r||(r=vW(r),!r.isValid())?!1:(r=PCt.addOpacity(r,r.getAlpha()),e[n]||(e[n]=r),r)}}function DCt(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=ike(a,ICt));for(var s=0,l=0;l{\"use strict\";var FCt=ip().appendArrayMultiPointValues;ake.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]),FCt(n,r,t.pts),r.type===\"funnelarea\"&&(delete n.v,delete n.i),n}});var yD=ye((Ydr,Eke)=>{\"use strict\";var Fp=Oa(),zCt=Mc(),pD=vf(),hke=ka(),Wy=So(),rv=Dr(),OCt=rv.strScale,ske=rv.strTranslate,pW=ru(),dke=bv(),qCt=dke.recordMinTextSize,BCt=dke.clearMinTextSize,vke=e2().TEXTPAD,ns=l_(),gD=oke(),lke=Dr().isValidTextValue;function NCt(e,t){var r=e._context.staticPlot,n=e._fullLayout,i=n._size;BCt(\"pie\",n),mke(t,e),Ake(t,i);var a=rv.makeTraceGroups(n._pielayer,t,\"trace\").each(function(o){var s=Fp.select(this),l=o[0],u=l.trace;YCt(o),s.attr(\"stroke-linejoin\",\"round\"),s.each(function(){var c=Fp.select(this).selectAll(\"g.slice\").data(o);c.enter().append(\"g\").classed(\"slice\",!0),c.exit().remove();var f=[[[],[]],[[],[]]],h=!1;c.each(function(S,L){if(S.hidden){Fp.select(this).selectAll(\"path,g\").remove();return}S.pointNumber=S.i,S.curveNumber=u.index,f[S.pxmid[1]<0?0:1][S.pxmid[0]<0?0:1].push(S);var x=l.cx,C=l.cy,M=Fp.select(this),g=M.selectAll(\"path.surface\").data([S]);if(g.enter().append(\"path\").classed(\"surface\",!0).style({\"pointer-events\":r?\"none\":\"all\"}),M.call(pke,e,o),u.pull){var P=+ns.castOption(u.pull,S.pts)||0;P>0&&(x+=P*S.pxmid[0],C+=P*S.pxmid[1])}S.cxFinal=x,S.cyFinal=C;function T(N,j,re,oe){var _e=oe*(j[0]-N[0]),Ee=oe*(j[1]-N[1]);return\"a\"+oe*l.r+\",\"+oe*l.r+\" 0 \"+S.largeArc+(re?\" 1 \":\" 0 \")+_e+\",\"+Ee}var z=u.hole;if(S.v===l.vTotal){var O=\"M\"+(x+S.px0[0])+\",\"+(C+S.px0[1])+T(S.px0,S.pxmid,!0,1)+T(S.pxmid,S.px0,!0,1)+\"Z\";z?g.attr(\"d\",\"M\"+(x+z*S.px0[0])+\",\"+(C+z*S.px0[1])+T(S.px0,S.pxmid,!1,z)+T(S.pxmid,S.px0,!1,z)+\"Z\"+O):g.attr(\"d\",O)}else{var V=T(S.px0,S.px1,!0,1);if(z){var G=1-z;g.attr(\"d\",\"M\"+(x+z*S.px1[0])+\",\"+(C+z*S.px1[1])+T(S.px1,S.px0,!1,z)+\"l\"+G*S.px0[0]+\",\"+G*S.px0[1]+V+\"Z\")}else g.attr(\"d\",\"M\"+x+\",\"+C+\"l\"+S.px0[0]+\",\"+S.px0[1]+V+\"Z\")}Ske(e,S,l);var Z=ns.castOption(u.textposition,S.pts),H=M.selectAll(\"g.slicetext\").data(S.text&&Z!==\"none\"?[0]:[]);H.enter().append(\"g\").classed(\"slicetext\",!0),H.exit().remove(),H.each(function(){var N=rv.ensureSingle(Fp.select(this),\"text\",\"\",function(ie){ie.attr(\"data-notex\",1)}),j=rv.ensureUniformFontSize(e,Z===\"outside\"?VCt(u,S,n.font):gke(u,S,n.font));N.text(S.text).attr({class:\"slicetext\",transform:\"\",\"text-anchor\":\"middle\"}).call(Wy.font,j).call(pW.convertToTspans,e);var re=Wy.bBox(N.node()),oe;if(Z===\"outside\")oe=fke(re,S);else if(oe=yke(re,S,l),Z===\"auto\"&&oe.scale<1){var _e=rv.ensureUniformFontSize(e,u.outsidetextfont);N.call(Wy.font,_e),re=Wy.bBox(N.node()),oe=fke(re,S)}var Ee=oe.textPosAngle,Ce=Ee===void 0?S.pxmid:mD(l.r,Ee);if(oe.targetX=x+Ce[0]*oe.rCenter+(oe.x||0),oe.targetY=C+Ce[1]*oe.rCenter+(oe.y||0),Mke(oe,re),oe.outside){var me=oe.targetY;S.yLabelMin=me-re.height/2,S.yLabelMid=me,S.yLabelMax=me+re.height/2,S.labelExtraX=0,S.labelExtraY=0,h=!0}oe.fontSize=j.size,qCt(u.type,oe,n),o[L].transform=oe,rv.setTransormAndDisplay(N,oe)})});var d=Fp.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 S=rv.ensureSingle(Fp.select(this),\"text\",\"\",function(C){C.attr(\"data-notex\",1)}),L=u.title.text;u._meta&&(L=rv.templateString(L,u._meta)),S.text(L).attr({class:\"titletext\",transform:\"\",\"text-anchor\":\"middle\"}).call(Wy.font,u.title.font).call(pW.convertToTspans,e);var x;u.title.position===\"middle center\"?x=jCt(l):x=wke(l,i),S.attr(\"transform\",ske(x.x,x.y)+OCt(Math.min(1,x.scale))+ske(x.tx,x.ty))}),h&&XCt(f,u),UCt(c,u),h&&u.automargin){var v=Wy.bBox(s.node()),_=u.domain,b=i.w*(_.x[1]-_.x[0]),p=i.h*(_.y[1]-_.y[0]),k=(.5*b-l.r)/i.w,E=(.5*p-l.r)/i.h;zCt.autoMargin(e,\"pie.\"+u.uid+\".automargin\",{xl:_.x[0]-k,xr:_.x[1]+k,yb:_.y[0]-E,yt:_.y[1]+E,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=Fp.select(this);o.attr(\"dy\")&&o.attr(\"dy\",o.attr(\"dy\"))})},0)}function UCt(e,t){e.each(function(r){var n=Fp.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,rv.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;rv.ensureSingle(n,\"path\",\"textline\").call(hke.stroke,t.outsidetextfont.color).attr({\"stroke-width\":Math.min(2,t.outsidetextfont.size/8),d:s,fill:\"none\"})})}function pke(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=pD.castHoverinfo({hoverinfo:[ns.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),_=u.separators,b=[];if(f&&f.indexOf(\"label\")!==-1&&b.push(l.label),l.text=ns.castOption(c.hovertext||c.text,l.pts),f&&f.indexOf(\"text\")!==-1){var p=l.text;rv.isValidTextValue(p)&&b.push(p)}l.value=l.v,l.valueLabel=ns.formatPieValue(l.v,_),f&&f.indexOf(\"value\")!==-1&&b.push(l.valueLabel),l.percent=l.v/n.vTotal,l.percentLabel=ns.formatPiePercent(l.percent,_),f&&f.indexOf(\"percent\")!==-1&&b.push(l.percentLabel);var k=c.hoverlabel,E=k.font,S=[];pD.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:ns.castOption(k.bgcolor,l.pts)||l.color,borderColor:ns.castOption(k.bordercolor,l.pts),fontFamily:ns.castOption(E.family,l.pts),fontSize:ns.castOption(E.size,l.pts),fontColor:ns.castOption(E.color,l.pts),nameLength:ns.castOption(k.namelength,l.pts),textAlign:ns.castOption(k.align,l.pts),hovertemplate:ns.castOption(c.hovertemplate,l.pts),hovertemplateLabels:l,eventData:[gD(l,c)]},{container:u._hoverlayer.node(),outerContainer:u._paper.node(),gd:t,inOut_bbox:S}),l.bbox=S[0],o._hasHoverLabel=!0}o._hasHoverEvent=!0,t.emit(\"plotly_hover\",{points:[gD(l,c)],event:Fp.event})}}),e.on(\"mouseout\",function(l){var u=t._fullLayout,c=t._fullData[o.index],f=Fp.select(this).datum();o._hasHoverEvent&&(l.originalEvent=Fp.event,t.emit(\"plotly_unhover\",{points:[gD(f,c)],event:Fp.event}),o._hasHoverEvent=!1),o._hasHoverLabel&&(pD.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=[gD(l,c)],pD.click(t,Fp.event))})}function VCt(e,t,r){var n=ns.castOption(e.outsidetextfont.color,t.pts)||ns.castOption(e.textfont.color,t.pts)||r.color,i=ns.castOption(e.outsidetextfont.family,t.pts)||ns.castOption(e.textfont.family,t.pts)||r.family,a=ns.castOption(e.outsidetextfont.size,t.pts)||ns.castOption(e.textfont.size,t.pts)||r.size,o=ns.castOption(e.outsidetextfont.weight,t.pts)||ns.castOption(e.textfont.weight,t.pts)||r.weight,s=ns.castOption(e.outsidetextfont.style,t.pts)||ns.castOption(e.textfont.style,t.pts)||r.style,l=ns.castOption(e.outsidetextfont.variant,t.pts)||ns.castOption(e.textfont.variant,t.pts)||r.variant,u=ns.castOption(e.outsidetextfont.textcase,t.pts)||ns.castOption(e.textfont.textcase,t.pts)||r.textcase,c=ns.castOption(e.outsidetextfont.lineposition,t.pts)||ns.castOption(e.textfont.lineposition,t.pts)||r.lineposition,f=ns.castOption(e.outsidetextfont.shadow,t.pts)||ns.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 gke(e,t,r){var n=ns.castOption(e.insidetextfont.color,t.pts);!n&&e._input.textfont&&(n=ns.castOption(e._input.textfont.color,t.pts));var i=ns.castOption(e.insidetextfont.family,t.pts)||ns.castOption(e.textfont.family,t.pts)||r.family,a=ns.castOption(e.insidetextfont.size,t.pts)||ns.castOption(e.textfont.size,t.pts)||r.size,o=ns.castOption(e.insidetextfont.weight,t.pts)||ns.castOption(e.textfont.weight,t.pts)||r.weight,s=ns.castOption(e.insidetextfont.style,t.pts)||ns.castOption(e.textfont.style,t.pts)||r.style,l=ns.castOption(e.insidetextfont.variant,t.pts)||ns.castOption(e.textfont.variant,t.pts)||r.variant,u=ns.castOption(e.insidetextfont.textcase,t.pts)||ns.castOption(e.textfont.textcase,t.pts)||r.textcase,c=ns.castOption(e.insidetextfont.lineposition,t.pts)||ns.castOption(e.textfont.lineposition,t.pts)||r.lineposition,f=ns.castOption(e.insidetextfont.shadow,t.pts)||ns.castOption(e.textfont.shadow,t.pts)||r.shadow;return{color:n||hke.contrast(t.color),family:i,size:a,weight:o,style:s,variant:l,textcase:u,lineposition:c,shadow:f}}function mke(e,t){for(var r,n,i=0;i=-4;k-=2)p(Math.PI*k,\"tan\");for(k=4;k>=-4;k-=2)p(Math.PI*(k+1),\"tan\")}if(f||d){for(k=4;k>=-4;k-=2)p(Math.PI*(k+1.5),\"rad\");for(k=4;k>=-4;k-=2)p(Math.PI*(k+.5),\"rad\")}}if(s||v||f){var E=Math.sqrt(e.width*e.width+e.height*e.height);if(b={scale:i*n*2/E,rCenter:1-i,rotate:0},b.textPosAngle=(t.startangle+t.stopangle)/2,b.scale>=1)return b;_.push(b)}(v||d)&&(b=uke(e,n,o,l,u),b.textPosAngle=(t.startangle+t.stopangle)/2,_.push(b)),(v||h)&&(b=cke(e,n,o,l,u),b.textPosAngle=(t.startangle+t.stopangle)/2,_.push(b));for(var S=0,L=0,x=0;x<_.length;x++){var C=_[x].scale;if(L=1)break}return _[S]}function GCt(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 jCt(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 wke(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=Tke(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=WCt(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=gW(e,t)/e.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function WCt(e,t){return e/(t===void 0?1:t)}function gW(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 Tke(e){var t=e.pull;if(!t)return 0;var r;if(rv.isArrayOrTypedArray(t))for(t=0,r=0;rt&&(t=e.pull[r]);return t}function XCt(e,t){var r,n,i,a,o,s,l,u,c,f,h,d,v;function _(E,S){return E.pxmid[1]-S.pxmid[1]}function b(E,S){return S.pxmid[1]-E.pxmid[1]}function p(E,S){S||(S={});var L=S.labelExtraY+(n?S.yLabelMax:S.yLabelMin),x=n?E.yLabelMin:E.yLabelMax,C=n?E.yLabelMax:E.yLabelMin,M=E.cyFinal+o(E.px0[1],E.px1[1]),g=L-x,P,T,z,O,V,G;if(g*l>0&&(E.labelExtraY=g),!!rv.isArrayOrTypedArray(t.pull))for(T=0;T=(ns.castOption(t.pull,z.pts)||0))&&((E.pxmid[1]-z.pxmid[1])*l>0?(O=z.cyFinal+o(z.px0[1],z.px1[1]),g=O-x-E.labelExtraY,g*l>0&&(E.labelExtraY+=g)):(C+E.labelExtraY-M)*l>0&&(P=3*s*Math.abs(T-f.indexOf(E)),V=z.cxFinal+a(z.px0[0],z.px1[0]),G=V+P-(E.cxFinal+E.pxmid[0])-E.labelExtraX,G*s>0&&(E.labelExtraX+=G)))}for(n=0;n<2;n++)for(i=n?_: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=HCt(u,t))}function mD(e,t){return[e*Math.sin(t),-e*Math.cos(t)]}function Ske(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(S){return s.indexOf(S)!==-1},u=l(\"label\"),c=l(\"text\"),f=l(\"value\"),h=l(\"percent\"),d=n.separators,v;if(v=u?[t.label]:[],c){var _=ns.getFirstFilled(i.text,t.pts);lke(_)&&v.push(_)}f&&v.push(ns.formatPieValue(t.v,d)),h&&v.push(ns.formatPiePercent(t.v/r.vTotal,d)),t.text=v.join(\"
\")}function b(S){return{label:S.label,value:S.v,valueLabel:ns.formatPieValue(S.v,n.separators),percent:S.v/r.vTotal,percentLabel:ns.formatPiePercent(S.v/r.vTotal,n.separators),color:S.color,text:S.text,customdata:rv.castOption(i,S.i,\"customdata\")}}if(a){var p=rv.castOption(i,t.i,\"texttemplate\");if(!p)t.text=\"\";else{var k=b(t),E=ns.getFirstFilled(i.text,t.pts);(lke(E)||E===\"\")&&(k.text=E),t.text=rv.texttemplateString({data:[k,i._meta],fallback:i.texttemplatefallback,labels:k,locale:e._fullLayout._d3locale,template:p})}}}function Mke(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}Eke.exports={plot:NCt,formatSliceLabel:Ske,transformInsideText:yke,determineInsideTextFont:gke,positionTitleOutside:wke,prerenderTitles:mke,layoutAreas:Ake,attachFxHandlers:pke,computeTransform:Mke}});var Lke=ye((Kdr,Cke)=>{\"use strict\";var kke=Oa(),KCt=q3(),JCt=bv().resizeText;Cke.exports=function(t){var r=t._fullLayout._pielayer.selectAll(\".trace\");JCt(t,r,\"pie\"),r.each(function(n){var i=n[0],a=i.trace,o=kke.select(this);o.style({opacity:a.opacity}),o.selectAll(\"path.surface\").each(function(s){kke.select(this).call(KCt,s,a,t)})})}});var Ike=ye(TA=>{\"use strict\";var Pke=Mc();TA.name=\"pie\";TA.plot=function(e,t,r,n){Pke.plotBasePlot(TA.name,e,t,r,n)};TA.clean=function(e,t,r,n){Pke.cleanBasePlot(TA.name,e,t,r,n)}});var Dke=ye(($dr,Rke)=>{\"use strict\";Rke.exports={attributes:S2(),supplyDefaults:M2().supplyDefaults,supplyLayoutDefaults:tke(),layoutAttributes:vD(),calc:wA().calc,crossTraceCalc:wA().crossTraceCalc,plot:yD().plot,style:Lke(),styleOne:q3(),moduleType:\"trace\",name:\"pie\",basePlotModule:Ike(),categories:[\"pie-like\",\"pie\",\"showLegend\"],meta:{}}});var zke=ye((Qdr,Fke)=>{\"use strict\";Fke.exports=Dke()});var qke=ye(AA=>{\"use strict\";var Oke=Mc();AA.name=\"sunburst\";AA.plot=function(e,t,r,n){Oke.plotBasePlot(AA.name,e,t,r,n)};AA.clean=function(e,t,r,n){Oke.cleanBasePlot(AA.name,e,t,r,n)}});var mW=ye((tvr,Bke)=>{\"use strict\";Bke.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:\"linear\",eventDataKeys:[\"currentPath\",\"root\",\"entry\",\"percentRoot\",\"percentEntry\",\"percentParent\"]}});var LE=ye((rvr,Vke)=>{\"use strict\";var $Ct=Gl(),{hovertemplateAttrs:QCt,texttemplateAttrs:e6t,templatefallbackAttrs:Nke}=Ll(),t6t=Tu(),r6t=Cc().attributes,Xy=S2(),Uke=mW(),CE=Ao().extendFlat,i6t=Pd().pattern;Vke.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:CE({colors:{valType:\"data_array\",editType:\"calc\"},line:{color:CE({},Xy.marker.line.color,{dflt:null}),width:CE({},Xy.marker.line.width,{dflt:1}),editType:\"calc\"},pattern:i6t,editType:\"calc\"},t6t(\"marker\",{colorAttr:\"colors\",anim:!1})),leaf:{opacity:{valType:\"number\",editType:\"style\",min:0,max:1},editType:\"plot\"},text:Xy.text,textinfo:{valType:\"flaglist\",flags:[\"label\",\"text\",\"value\",\"current path\",\"percent root\",\"percent entry\",\"percent parent\"],extras:[\"none\"],editType:\"plot\"},texttemplate:e6t({editType:\"plot\"},{keys:Uke.eventDataKeys.concat([\"label\",\"value\"])}),texttemplatefallback:Nke({editType:\"plot\"}),hovertext:Xy.hovertext,hoverinfo:CE({},$Ct.hoverinfo,{flags:[\"label\",\"text\",\"value\",\"name\",\"current path\",\"percent root\",\"percent entry\",\"percent parent\"],dflt:\"label+text+value+name\"}),hovertemplate:QCt({},{keys:Uke.eventDataKeys}),hovertemplatefallback:Nke(),textfont:Xy.textfont,insidetextorientation:Xy.insidetextorientation,insidetextfont:Xy.insidetextfont,outsidetextfont:CE({},Xy.outsidetextfont,{}),rotation:{valType:\"angle\",dflt:0,editType:\"plot\"},sort:Xy.sort,root:{color:{valType:\"color\",editType:\"calc\",dflt:\"rgba(0,0,0,0)\"},editType:\"calc\"},domain:r6t({name:\"sunburst\",trace:!0,editType:\"calc\"})}});var yW=ye((ivr,Gke)=>{\"use strict\";Gke.exports={sunburstcolorway:{valType:\"colorlist\",editType:\"calc\"},extendsunburstcolors:{valType:\"boolean\",dflt:!0,editType:\"calc\"}}});var Xke=ye((nvr,Wke)=>{\"use strict\";var Hke=Dr(),n6t=LE(),a6t=Cc().defaults,o6t=r0().handleText,s6t=M2().handleMarkerDefaults,jke=tc(),l6t=jke.hasColorscale,u6t=jke.handleDefaults;Wke.exports=function(t,r,n,i){function a(h,d){return Hke.coerce(t,r,n6t,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\"),s6t(t,r,i,a);var u=r._hasColorscale=l6t(t,\"marker\",\"colors\")||(t.marker||{}).coloraxis;u&&u6t(t,r,i,a,{prefix:\"marker.\",cLetter:\"c\"}),a(\"leaf.opacity\",u?1:.7);var c=a(\"text\");a(\"texttemplate\"),a(\"texttemplatefallback\"),r.texttemplate||a(\"textinfo\",Hke.isArrayOrTypedArray(c)?\"text+label\":\"label\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\");var f=\"auto\";o6t(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\"),a6t(r,i,a),r._length=null}});var Yke=ye((avr,Zke)=>{\"use strict\";var c6t=Dr(),f6t=yW();Zke.exports=function(t,r){function n(i,a){return c6t.coerce(t,r,f6t,i,a)}n(\"sunburstcolorway\",r.colorway),n(\"extendsunburstcolors\")}});var PE=ye((_D,Kke)=>{(function(e,t){typeof _D==\"object\"&&typeof Kke!=\"undefined\"?t(_D):(e=e||self,t(e.d3=e.d3||{}))})(_D,function(e){\"use strict\";function t(je,tt){return je.parent===tt.parent?1:2}function r(je){return je.reduce(n,0)/je.length}function n(je,tt){return je+tt.x}function i(je){return 1+je.reduce(a,0)}function a(je,tt){return Math.max(je,tt.y)}function o(je){for(var tt;tt=je.children;)je=tt[0];return je}function s(je){for(var tt;tt=je.children;)je=tt[tt.length-1];return je}function l(){var je=t,tt=1,xt=1,Ie=!1;function xe(ke){var vt,ir=0;ke.eachAfter(function($r){var di=$r.children;di?($r.x=r(di),$r.y=i(di)):($r.x=vt?ir+=je($r,vt):0,$r.y=0,vt=$r)});var ar=o(ke),vr=s(ke),ii=ar.x-je(ar,vr)/2,pi=vr.x+je(vr,ar)/2;return ke.eachAfter(Ie?function($r){$r.x=($r.x-ke.x)*tt,$r.y=(ke.y-$r.y)*xt}:function($r){$r.x=($r.x-ii)/(pi-ii)*tt,$r.y=(1-(ke.y?$r.y/ke.y:1))*xt})}return xe.separation=function(ke){return arguments.length?(je=ke,xe):je},xe.size=function(ke){return arguments.length?(Ie=!1,tt=+ke[0],xt=+ke[1],xe):Ie?null:[tt,xt]},xe.nodeSize=function(ke){return arguments.length?(Ie=!0,tt=+ke[0],xt=+ke[1],xe):Ie?[tt,xt]:null},xe}function u(je){var tt=0,xt=je.children,Ie=xt&&xt.length;if(!Ie)tt=1;else for(;--Ie>=0;)tt+=xt[Ie].value;je.value=tt}function c(){return this.eachAfter(u)}function f(je){var tt=this,xt,Ie=[tt],xe,ke,vt;do for(xt=Ie.reverse(),Ie=[];tt=xt.pop();)if(je(tt),xe=tt.children,xe)for(ke=0,vt=xe.length;ke=0;--xe)xt.push(Ie[xe]);return this}function d(je){for(var tt=this,xt=[tt],Ie=[],xe,ke,vt;tt=xt.pop();)if(Ie.push(tt),xe=tt.children,xe)for(ke=0,vt=xe.length;ke=0;)xt+=Ie[xe].value;tt.value=xt})}function _(je){return this.eachBefore(function(tt){tt.children&&tt.children.sort(je)})}function b(je){for(var tt=this,xt=p(tt,je),Ie=[tt];tt!==xt;)tt=tt.parent,Ie.push(tt);for(var xe=Ie.length;je!==xt;)Ie.splice(xe,0,je),je=je.parent;return Ie}function p(je,tt){if(je===tt)return je;var xt=je.ancestors(),Ie=tt.ancestors(),xe=null;for(je=xt.pop(),tt=Ie.pop();je===tt;)xe=je,je=xt.pop(),tt=Ie.pop();return xe}function k(){for(var je=this,tt=[je];je=je.parent;)tt.push(je);return tt}function E(){var je=[];return this.each(function(tt){je.push(tt)}),je}function S(){var je=[];return this.eachBefore(function(tt){tt.children||je.push(tt)}),je}function L(){var je=this,tt=[];return je.each(function(xt){xt!==je&&tt.push({source:xt.parent,target:xt})}),tt}function x(je,tt){var xt=new T(je),Ie=+je.value&&(xt.value=je.value),xe,ke=[xt],vt,ir,ar,vr;for(tt==null&&(tt=M);xe=ke.pop();)if(Ie&&(xe.value=+xe.data.value),(ir=tt(xe.data))&&(vr=ir.length))for(xe.children=new Array(vr),ar=vr-1;ar>=0;--ar)ke.push(vt=xe.children[ar]=new T(ir[ar])),vt.parent=xe,vt.depth=xe.depth+1;return xt.eachBefore(P)}function C(){return x(this).eachBefore(g)}function M(je){return je.children}function g(je){je.data=je.data.data}function P(je){var tt=0;do je.height=tt;while((je=je.parent)&&je.height<++tt)}function T(je){this.data=je,this.depth=this.height=0,this.parent=null}T.prototype=x.prototype={constructor:T,count:c,each:f,eachAfter:d,eachBefore:h,sum:v,sort:_,path:b,ancestors:k,descendants:E,leaves:S,links:L,copy:C};var z=Array.prototype.slice;function O(je){for(var tt=je.length,xt,Ie;tt;)Ie=Math.random()*tt--|0,xt=je[tt],je[tt]=je[Ie],je[Ie]=xt;return je}function V(je){for(var tt=0,xt=(je=O(z.call(je))).length,Ie=[],xe,ke;tt0&&xt*xt>Ie*Ie+xe*xe}function N(je,tt){for(var xt=0;xtar?(xe=(vr+ar-ke)/(2*vr),ir=Math.sqrt(Math.max(0,ar/vr-xe*xe)),xt.x=je.x-xe*Ie-ir*vt,xt.y=je.y-xe*vt+ir*Ie):(xe=(vr+ke-ar)/(2*vr),ir=Math.sqrt(Math.max(0,ke/vr-xe*xe)),xt.x=tt.x+xe*Ie-ir*vt,xt.y=tt.y+xe*vt+ir*Ie)):(xt.x=tt.x+xt.r,xt.y=tt.y)}function Ce(je,tt){var xt=je.r+tt.r-1e-6,Ie=tt.x-je.x,xe=tt.y-je.y;return xt>0&&xt*xt>Ie*Ie+xe*xe}function me(je){var tt=je._,xt=je.next._,Ie=tt.r+xt.r,xe=(tt.x*xt.r+xt.x*tt.r)/Ie,ke=(tt.y*xt.r+xt.y*tt.r)/Ie;return xe*xe+ke*ke}function ie(je){this._=je,this.next=null,this.previous=null}function Se(je){if(!(xe=je.length))return 0;var tt,xt,Ie,xe,ke,vt,ir,ar,vr,ii,pi;if(tt=je[0],tt.x=0,tt.y=0,!(xe>1))return tt.r;if(xt=je[1],tt.x=-xt.r,xt.x=tt.r,xt.y=0,!(xe>2))return tt.r+xt.r;Ee(xt,tt,Ie=je[2]),tt=new ie(tt),xt=new ie(xt),Ie=new ie(Ie),tt.next=Ie.previous=xt,xt.next=tt.previous=Ie,Ie.next=xt.previous=tt;e:for(ir=3;ir0)throw new Error(\"cycle\");return ir}return xt.id=function(Ie){return arguments.length?(je=Fe(Ie),xt):je},xt.parentId=function(Ie){return arguments.length?(tt=Fe(Ie),xt):tt},xt}function $e(je,tt){return je.parent===tt.parent?1:2}function St(je){var tt=je.children;return tt?tt[0]:je.t}function Qt(je){var tt=je.children;return tt?tt[tt.length-1]:je.t}function Vt(je,tt,xt){var Ie=xt/(tt.i-je.i);tt.c-=Ie,tt.s+=xt,je.c+=Ie,tt.z+=xt,tt.m+=xt}function _t(je){for(var tt=0,xt=0,Ie=je.children,xe=Ie.length,ke;--xe>=0;)ke=Ie[xe],ke.z+=tt,ke.m+=tt,tt+=ke.s+(xt+=ke.c)}function It(je,tt,xt){return je.a.parent===tt.parent?je.a:xt}function mt(je,tt){this._=je,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=tt}mt.prototype=Object.create(T.prototype);function er(je){for(var tt=new mt(je,0),xt,Ie=[tt],xe,ke,vt,ir;xt=Ie.pop();)if(ke=xt._.children)for(xt.children=new Array(ir=ke.length),vt=ir-1;vt>=0;--vt)Ie.push(xe=xt.children[vt]=new mt(ke[vt],vt)),xe.parent=xt;return(tt.parent=new mt(null,0)).children=[tt],tt}function lr(){var je=$e,tt=1,xt=1,Ie=null;function xe(vr){var ii=er(vr);if(ii.eachAfter(ke),ii.parent.m=-ii.z,ii.eachBefore(vt),Ie)vr.eachBefore(ar);else{var pi=vr,$r=vr,di=vr;vr.eachBefore(function(qn){qn.x$r.x&&($r=qn),qn.depth>di.depth&&(di=qn)});var ji=pi===$r?1:je(pi,$r)/2,In=ji-pi.x,wi=tt/($r.x+ji+In),On=xt/(di.depth||1);vr.eachBefore(function(qn){qn.x=(qn.x+In)*wi,qn.y=qn.depth*On})}return vr}function ke(vr){var ii=vr.children,pi=vr.parent.children,$r=vr.i?pi[vr.i-1]:null;if(ii){_t(vr);var di=(ii[0].z+ii[ii.length-1].z)/2;$r?(vr.z=$r.z+je(vr._,$r._),vr.m=vr.z-di):vr.z=di}else $r&&(vr.z=$r.z+je(vr._,$r._));vr.parent.A=ir(vr,$r,vr.parent.A||pi[0])}function vt(vr){vr._.x=vr.z+vr.parent.m,vr.m+=vr.parent.m}function ir(vr,ii,pi){if(ii){for(var $r=vr,di=vr,ji=ii,In=$r.parent.children[0],wi=$r.m,On=di.m,qn=ji.m,Fn=In.m,ra;ji=Qt(ji),$r=St($r),ji&&$r;)In=St(In),di=Qt(di),di.a=vr,ra=ji.z+qn-$r.z-wi+je(ji._,$r._),ra>0&&(Vt(It(ji,vr,pi),vr,ra),wi+=ra,On+=ra),qn+=ji.m,wi+=$r.m,Fn+=In.m,On+=di.m;ji&&!Qt(di)&&(di.t=ji,di.m+=qn-On),$r&&!St(In)&&(In.t=$r,In.m+=wi-Fn,pi=vr)}return pi}function ar(vr){vr.x*=tt,vr.y=vr.depth*xt}return xe.separation=function(vr){return arguments.length?(je=vr,xe):je},xe.size=function(vr){return arguments.length?(Ie=!1,tt=+vr[0],xt=+vr[1],xe):Ie?null:[tt,xt]},xe.nodeSize=function(vr){return arguments.length?(Ie=!0,tt=+vr[0],xt=+vr[1],xe):Ie?[tt,xt]:null},xe}function Tr(je,tt,xt,Ie,xe){for(var ke=je.children,vt,ir=-1,ar=ke.length,vr=je.value&&(xe-xt)/je.value;++irqn&&(qn=vr),Ut=wi*wi*la,Fn=Math.max(qn/Ut,Ut/On),Fn>ra){wi-=vr;break}ra=Fn}vt.push(ar={value:wi,dice:di1?Ie:1)},xt}(Lr);function Vr(){var je=Br,tt=!1,xt=1,Ie=1,xe=[0],ke=Pe,vt=Pe,ir=Pe,ar=Pe,vr=Pe;function ii($r){return $r.x0=$r.y0=0,$r.x1=xt,$r.y1=Ie,$r.eachBefore(pi),xe=[0],tt&&$r.eachBefore(Zt),$r}function pi($r){var di=xe[$r.depth],ji=$r.x0+di,In=$r.y0+di,wi=$r.x1-di,On=$r.y1-di;wi=$r-1){var qn=ke[pi];qn.x0=ji,qn.y0=In,qn.x1=wi,qn.y1=On;return}for(var Fn=vr[pi],ra=di/2+Fn,la=pi+1,Ut=$r-1;la>>1;vr[wt]On-In){var Er=(ji*nr+wi*rr)/di;ii(pi,la,rr,ji,In,Er,On),ii(la,$r,nr,Er,In,wi,On)}else{var Xr=(In*nr+On*rr)/di;ii(pi,la,rr,ji,In,wi,Xr),ii(la,$r,nr,ji,Xr,wi,On)}}}function Ge(je,tt,xt,Ie,xe){(je.depth&1?Tr:st)(je,tt,xt,Ie,xe)}var Je=function je(tt){function xt(Ie,xe,ke,vt,ir){if((ar=Ie._squarify)&&ar.ratio===tt)for(var ar,vr,ii,pi,$r=-1,di,ji=ar.length,In=Ie.value;++$r1?Ie:1)},xt}(Lr);e.cluster=l,e.hierarchy=x,e.pack=ce,e.packEnclose=V,e.packSiblings=Le,e.partition=lt,e.stratify=cr,e.tree=lr,e.treemap=Vr,e.treemapBinary=dt,e.treemapDice=st,e.treemapResquarify=Je,e.treemapSlice=Tr,e.treemapSliceDice=Ge,e.treemapSquarify=Br,Object.defineProperty(e,\"__esModule\",{value:!0})})});var RE=ye(IE=>{\"use strict\";var Jke=PE(),h6t=Eo(),SA=Dr(),d6t=tc().makeColorScaleFuncFromTrace,v6t=wA().makePullColorFn,p6t=wA().generateExtendedColors,g6t=tc().calc,m6t=fs().ALMOST_EQUAL,y6t={},_6t={},x6t={};IE.calc=function(e,t){var r=e._fullLayout,n=t.ids,i=SA.isArrayOrTypedArray(n),a=t.labels,o=t.parents,s=t.values,l=SA.isArrayOrTypedArray(s),u=[],c={},f={},h=function(H,N){c[H]?c[H].push(N):c[H]=[N],f[N]=1},d=function(H){return H||typeof H==\"number\"},v=function(H){return!l||h6t(s[H])&&s[H]>=0},_,b,p;i?(_=Math.min(n.length,o.length),b=function(H){return d(n[H])&&v(H)},p=function(H){return String(n[H])}):(_=Math.min(a.length,o.length),b=function(H){return d(a[H])&&v(H)},p=function(H){return String(a[H])}),l&&(_=Math.min(_,s.length));for(var k=0;k<_;k++)if(b(k)){var E=p(k),S=d(o[k])?String(o[k]):\"\",L={i:k,id:E,pid:S,label:d(a[k])?String(a[k]):\"\"};l&&(L.v=+s[k]),u.push(L),h(S,E)}if(c[\"\"]){if(c[\"\"].length>1){for(var M=SA.randstr(),g=0;g{});function Gm(){}function eCe(){return this.rgb().formatHex()}function k6t(){return this.rgb().formatHex8()}function C6t(){return sCe(this).formatHsl()}function tCe(){return this.rgb().formatRgb()}function j_(e){var t,r;return e=(e+\"\").trim().toLowerCase(),(t=b6t.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?rCe(t):r===3?new _d(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?bD(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?bD(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=w6t.exec(e))?new _d(t[1],t[2],t[3],1):(t=T6t.exec(e))?new _d(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=A6t.exec(e))?bD(t[1],t[2],t[3],t[4]):(t=S6t.exec(e))?bD(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=M6t.exec(e))?aCe(t[1],t[2]/100,t[3]/100,1):(t=E6t.exec(e))?aCe(t[1],t[2]/100,t[3]/100,t[4]):Qke.hasOwnProperty(e)?rCe(Qke[e]):e===\"transparent\"?new _d(NaN,NaN,NaN,0):null}function rCe(e){return new _d(e>>16&255,e>>8&255,e&255,1)}function bD(e,t,r,n){return n<=0&&(e=t=r=NaN),new _d(e,t,r,n)}function FE(e){return e instanceof Gm||(e=j_(e)),e?(e=e.rgb(),new _d(e.r,e.g,e.b,e.opacity)):new _d}function EA(e,t,r,n){return arguments.length===1?FE(e):new _d(e,t,r,n==null?1:n)}function _d(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function iCe(){return`#${E2(this.r)}${E2(this.g)}${E2(this.b)}`}function L6t(){return`#${E2(this.r)}${E2(this.g)}${E2(this.b)}${E2((isNaN(this.opacity)?1:this.opacity)*255)}`}function nCe(){let e=TD(this.opacity);return`${e===1?\"rgb(\":\"rgba(\"}${k2(this.r)}, ${k2(this.g)}, ${k2(this.b)}${e===1?\")\":`, ${e})`}`}function TD(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function k2(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function E2(e){return e=k2(e),(e<16?\"0\":\"\")+e.toString(16)}function aCe(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Xg(e,t,r,n)}function sCe(e){if(e instanceof Xg)return new Xg(e.h,e.s,e.l,e.opacity);if(e instanceof Gm||(e=j_(e)),!e)return new Xg;if(e instanceof Xg)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 Xg(o,s,l,e.opacity)}function zE(e,t,r,n){return arguments.length===1?sCe(e):new Xg(e,t,r,n==null?1:n)}function Xg(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function oCe(e){return e=(e||0)%360,e<0?e+360:e}function wD(e){return Math.max(0,Math.min(1,e||0))}function _W(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 H_,C2,MA,DE,Vm,b6t,w6t,T6t,A6t,S6t,M6t,E6t,Qke,AD=gu(()=>{xD();H_=.7,C2=1/H_,MA=\"\\\\s*([+-]?\\\\d+)\\\\s*\",DE=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",Vm=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",b6t=/^#([0-9a-f]{3,8})$/,w6t=new RegExp(`^rgb\\\\(${MA},${MA},${MA}\\\\)$`),T6t=new RegExp(`^rgb\\\\(${Vm},${Vm},${Vm}\\\\)$`),A6t=new RegExp(`^rgba\\\\(${MA},${MA},${MA},${DE}\\\\)$`),S6t=new RegExp(`^rgba\\\\(${Vm},${Vm},${Vm},${DE}\\\\)$`),M6t=new RegExp(`^hsl\\\\(${DE},${Vm},${Vm}\\\\)$`),E6t=new RegExp(`^hsla\\\\(${DE},${Vm},${Vm},${DE}\\\\)$`),Qke={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};Zy(Gm,j_,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:eCe,formatHex:eCe,formatHex8:k6t,formatHsl:C6t,formatRgb:tCe,toString:tCe});Zy(_d,EA,G_(Gm,{brighter(e){return e=e==null?C2:Math.pow(C2,e),new _d(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?H_:Math.pow(H_,e),new _d(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new _d(k2(this.r),k2(this.g),k2(this.b),TD(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:iCe,formatHex:iCe,formatHex8:L6t,formatRgb:nCe,toString:nCe}));Zy(Xg,zE,G_(Gm,{brighter(e){return e=e==null?C2:Math.pow(C2,e),new Xg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?H_:Math.pow(H_,e),new Xg(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 _d(_W(e>=240?e-240:e+120,i,n),_W(e,i,n),_W(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new Xg(oCe(this.h),wD(this.s),wD(this.l),TD(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=TD(this.opacity);return`${e===1?\"hsl(\":\"hsla(\"}${oCe(this.h)}, ${wD(this.s)*100}%, ${wD(this.l)*100}%${e===1?\")\":`, ${e})`}`}}))});var SD,MD,xW=gu(()=>{SD=Math.PI/180,MD=180/Math.PI});function dCe(e){if(e instanceof Hm)return new Hm(e.l,e.a,e.b,e.opacity);if(e instanceof Yy)return vCe(e);e instanceof _d||(e=FE(e));var t=AW(e.r),r=AW(e.g),n=AW(e.b),i=bW((.2225045*t+.7168786*r+.0606169*n)/uCe),a,o;return t===r&&r===n?a=o=i:(a=bW((.4360747*t+.3850649*r+.1430804*n)/lCe),o=bW((.0139322*t+.0971045*r+.7141733*n)/cCe)),new Hm(116*i-16,500*(a-i),200*(i-o),e.opacity)}function CA(e,t,r,n){return arguments.length===1?dCe(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 bW(e){return e>P6t?Math.pow(e,1/3):e/hCe+fCe}function wW(e){return e>kA?e*e*e:hCe*(e-fCe)}function TW(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function AW(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function I6t(e){if(e instanceof Yy)return new Yy(e.h,e.c,e.l,e.opacity);if(e instanceof Hm||(e=dCe(e)),e.a===0&&e.b===0)return new Yy(NaN,0{xD();AD();xW();ED=18,lCe=.96422,uCe=1,cCe=.82521,fCe=4/29,kA=6/29,hCe=3*kA*kA,P6t=kA*kA*kA;Zy(Hm,CA,G_(Gm,{brighter(e){return new Hm(this.l+ED*(e==null?1:e),this.a,this.b,this.opacity)},darker(e){return new Hm(this.l-ED*(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=lCe*wW(t),e=uCe*wW(e),r=cCe*wW(r),new _d(TW(3.1338561*t-1.6168667*e-.4906146*r),TW(-.9787684*t+1.9161415*e+.033454*r),TW(.0719453*t-.2289914*e+1.4052427*r),this.opacity)}}));Zy(Yy,OE,G_(Gm,{brighter(e){return new Yy(this.h,this.c,this.l+ED*(e==null?1:e),this.opacity)},darker(e){return new Yy(this.h,this.c,this.l-ED*(e==null?1:e),this.opacity)},rgb(){return vCe(this).rgb()}}))});function R6t(e){if(e instanceof L2)return new L2(e.h,e.s,e.l,e.opacity);e instanceof _d||(e=FE(e));var t=e.r/255,r=e.g/255,n=e.b/255,i=(yCe*n+gCe*t-mCe*r)/(yCe+gCe-mCe),a=n-i,o=(qE*(r-i)-MW*a)/kD,s=Math.sqrt(o*o+a*a)/(qE*i*(1-i)),l=s?Math.atan2(o,a)*MD-120:NaN;return new L2(l<0?l+360:l,s,i,e.opacity)}function LA(e,t,r,n){return arguments.length===1?R6t(e):new L2(e,t,r,n==null?1:n)}function L2(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}var _Ce,SW,MW,kD,qE,gCe,mCe,yCe,xCe=gu(()=>{xD();AD();xW();_Ce=-.14861,SW=1.78277,MW=-.29227,kD=-.90649,qE=1.97294,gCe=qE*kD,mCe=qE*SW,yCe=SW*MW-kD*_Ce;Zy(L2,LA,G_(Gm,{brighter(e){return e=e==null?C2:Math.pow(C2,e),new L2(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?H_:Math.pow(H_,e),new L2(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*SD,t=+this.l,r=isNaN(this.s)?0:this.s*t*(1-t),n=Math.cos(e),i=Math.sin(e);return new _d(255*(t+r*(_Ce*n+SW*i)),255*(t+r*(MW*n+kD*i)),255*(t+r*(qE*n)),this.opacity)}}))});var P2=gu(()=>{AD();pCe();xCe()});function EW(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 CD(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 PD(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 EW((r-n/t)*t,i,a,o,s)}}var kW=gu(()=>{LD()});var PA,CW=gu(()=>{PA=e=>()=>e});function bCe(e,t){return function(r){return e+r*t}}function D6t(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?bCe(e,r>180||r<-180?r-360*Math.round(r/360):r):PA(isNaN(e)?t:e)}function wCe(e){return(e=+e)==1?$f:function(t,r){return r-t?D6t(t,r,e):PA(isNaN(t)?r:t)}}function $f(e,t){var r=t-e;return r?bCe(e,r):PA(isNaN(e)?t:e)}var I2=gu(()=>{CW()});function TCe(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{P2();LD();kW();I2();BE=function e(t){var r=wCe(t);function n(i,a){var o=r((i=EA(i)).r,(a=EA(a)).r),s=r(i.g,a.g),l=r(i.b,a.b),u=$f(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);ACe=TCe(CD),SCe=TCe(PD)});function IA(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 MCe(e,t){return(ID(t)?IA:PW)(e,t)}function PW(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{NE();RD()});function DD(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}var RW=gu(()=>{});function zp(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var UE=gu(()=>{});function FD(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]=X_(e[i],t[i]):n[i]=t[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var DW=gu(()=>{NE()});function F6t(e){return function(){return e}}function z6t(e){return function(t){return e(t)+\"\"}}function zD(e,t){var r=zW.lastIndex=FW.lastIndex=0,n,i,a,o=-1,s=[],l=[];for(e=e+\"\",t=t+\"\";(n=zW.exec(e))&&(i=FW.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:zp(n,i)})),r=FW.lastIndex;return r{UE();zW=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,FW=new RegExp(zW.source,\"g\")});function X_(e,t){var r=typeof t,n;return t==null||r===\"boolean\"?PA(t):(r===\"number\"?zp:r===\"string\"?(n=j_(t))?(t=n,BE):zD:t instanceof j_?BE:t instanceof Date?DD:ID(t)?IA:Array.isArray(t)?PW:typeof t.valueOf!=\"function\"&&typeof t.toString!=\"function\"||isNaN(t)?FD:zp)(e,t)}var NE=gu(()=>{P2();LW();IW();RW();UE();DW();OW();CW();RD()});function ECe(e){var t=e.length;return function(r){return e[Math.max(0,Math.min(t-1,Math.floor(r*t)))]}}var kCe=gu(()=>{});function CCe(e,t){var r=W_(+e,+t);return function(n){var i=r(n);return i-360*Math.floor(i/360)}}var LCe=gu(()=>{I2()});function PCe(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}var ICe=gu(()=>{});function qW(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{RCe=180/Math.PI,OD={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1}});function FCe(e){let t=new(typeof DOMMatrix==\"function\"?DOMMatrix:WebKitCSSMatrix)(e+\"\");return t.isIdentity?OD:qW(t.a,t.b,t.c,t.d,t.e,t.f)}function zCe(e){return e==null?OD:(qD||(qD=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),qD.setAttribute(\"transform\",e),(e=qD.transform.baseVal.consolidate())?(e=e.matrix,qW(e.a,e.b,e.c,e.d,e.e,e.f)):OD)}var qD,OCe=gu(()=>{DCe()});function qCe(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 _=d.push(\"translate(\",null,t,null,r);v.push({i:_-4,x:zp(u,f)},{i:_-2,x:zp(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:zp(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:zp(u,c)}):c&&f.push(i(f)+\"skewX(\"+c+n)}function l(u,c,f,h,d,v){if(u!==f||c!==h){var _=d.push(i(d)+\"scale(\",null,\",\",null,\")\");v.push({i:_-4,x:zp(u,f)},{i:_-2,x:zp(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,_=h.length,b;++v<_;)f[(b=h[v]).i]=b.x(d);return f.join(\"\")}}}var BCe,NCe,UCe=gu(()=>{UE();OCe();BCe=qCe(FCe,\"px, \",\"px)\",\"deg)\"),NCe=qCe(zCe,\", \",\")\",\")\")});function VCe(e){return((e=Math.exp(e))+1/e)/2}function q6t(e){return((e=Math.exp(e))-1/e)/2}function B6t(e){return((e=Math.exp(2*e))-1)/(e+1)}var O6t,GCe,HCe=gu(()=>{O6t=1e-12;GCe=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,_=d*d+v*v,b,p;if(_{P2();I2();WCe=jCe(W_),XCe=jCe($f)});function BW(e,t){var r=$f((e=CA(e)).l,(t=CA(t)).l),n=$f(e.a,t.a),i=$f(e.b,t.b),a=$f(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 YCe=gu(()=>{P2();I2()});function KCe(e){return function(t,r){var n=e((t=OE(t)).h,(r=OE(r)).h),i=$f(t.c,r.c),a=$f(t.l,r.l),o=$f(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 JCe,$Ce,QCe=gu(()=>{P2();I2();JCe=KCe(W_),$Ce=KCe($f)});function e6e(e){return function t(r){r=+r;function n(i,a){var o=e((i=LA(i)).h,(a=LA(a)).h),s=$f(i.s,a.s),l=$f(i.l,a.l),u=$f(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 t6e,r6e,i6e=gu(()=>{P2();I2();t6e=e6e(W_),r6e=e6e($f)});function NW(e,t){t===void 0&&(t=e,e=X_);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r{NE()});function a6e(e,t){for(var r=new Array(t),n=0;n{});var R2={};uee(R2,{interpolate:()=>X_,interpolateArray:()=>MCe,interpolateBasis:()=>CD,interpolateBasisClosed:()=>PD,interpolateCubehelix:()=>t6e,interpolateCubehelixLong:()=>r6e,interpolateDate:()=>DD,interpolateDiscrete:()=>ECe,interpolateHcl:()=>JCe,interpolateHclLong:()=>$Ce,interpolateHsl:()=>WCe,interpolateHslLong:()=>XCe,interpolateHue:()=>CCe,interpolateLab:()=>BW,interpolateNumber:()=>zp,interpolateNumberArray:()=>IA,interpolateObject:()=>FD,interpolateRgb:()=>BE,interpolateRgbBasis:()=>ACe,interpolateRgbBasisClosed:()=>SCe,interpolateRound:()=>PCe,interpolateString:()=>zD,interpolateTransformCss:()=>BCe,interpolateTransformSvg:()=>NCe,interpolateZoom:()=>GCe,piecewise:()=>NW,quantize:()=>a6e});var D2=gu(()=>{NE();IW();LD();kW();RW();kCe();LCe();UE();RD();DW();ICe();OW();UCe();HCe();LW();ZCe();YCe();QCe();i6e();n6e();o6e()});var BD=ye((Ypr,s6e)=>{\"use strict\";var N6t=So(),U6t=ka();s6e.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),N6t.pointStyle(t,n,i,r)}else U6t.fill(t,l)}});var UW=ye((Kpr,h6e)=>{\"use strict\";var l6e=Oa(),u6e=ka(),c6e=Dr(),V6t=bv().resizeText,G6t=BD();function H6t(e){var t=e._fullLayout._sunburstlayer.selectAll(\".trace\");V6t(e,t,\"sunburst\"),t.each(function(r){var n=l6e.select(this),i=r[0],a=i.trace;n.style(\"opacity\",a.opacity),n.selectAll(\"path.surface\").each(function(o){l6e.select(this).call(f6e,o,a,e)})})}function f6e(e,t,r,n){var i=t.data.data,a=!t.children,o=i.i,s=c6e.castOption(r,o,\"marker.line.color\")||u6e.defaultLine,l=c6e.castOption(r,o,\"marker.line.width\")||0;e.call(G6t,t,r,n).style(\"stroke-width\",l).call(u6e.stroke,s).style(\"opacity\",a?r.leaf.opacity:null)}h6e.exports={style:H6t,styleOne:f6e}});var Ky=ye(Bs=>{\"use strict\";var F2=Dr(),j6t=ka(),W6t=Ag(),d6e=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 v6e(e){return e.data.data.pid}Bs.getParent=function(e,t){return Bs.findEntryWithLevel(e,v6e(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=d6e.formatPieValue;Bs.formatPercent=function(e,t){var r=F2.formatPercent(e,0);return r===\"0%\"&&(r=d6e.formatPiePercent(e,t)),r}});var HE=ye(($pr,m6e)=>{\"use strict\";var RA=Oa(),p6e=qa(),Y6t=ip().appendArrayPointValue,VE=vf(),g6e=Dr(),K6t=y3(),rd=Ky(),J6t=l_(),$6t=J6t.formatPieValue;m6e.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 _=n._fullLayout;if(!(n._dragging||_.hovermode===!1)){var b=n._fullData[s.index],p=v.data.data,k=p.i,E=rd.isHierarchyRoot(v),S=rd.getParent(l,v),L=rd.getValue(v),x=function(Ee){return g6e.castOption(b,k,Ee)},C=x(\"hovertemplate\"),M=VE.castHoverinfo(b,_,k),g=_.separators,P;if(C||M&&M!==\"none\"&&M!==\"skip\"){var T,z;u&&(T=o.cx+v.pxmid[0]*(1-v.rInscribed),z=o.cy+v.pxmid[1]*(1-v.rInscribed)),c&&(T=v._hoverX,z=v._hoverY);var O={},V=[],G=[],Z=function(Ee){return V.indexOf(Ee)!==-1};M&&(V=M===\"all\"?b._module.attributes.hoverinfo.flags:M.split(\"+\")),O.label=p.label,Z(\"label\")&&O.label&&G.push(O.label),p.hasOwnProperty(\"v\")&&(O.value=p.v,O.valueLabel=$6t(O.value,g),Z(\"value\")&&G.push(O.valueLabel)),O.currentPath=v.currentPath=rd.getPath(v.data),Z(\"current path\")&&!E&&G.push(O.currentPath);var H,N=[],j=function(){N.indexOf(H)===-1&&(G.push(H),N.push(H))};O.percentParent=v.percentParent=L/rd.getValue(S),O.parent=v.parentString=rd.getPtLabel(S),Z(\"percent parent\")&&(H=rd.formatPercent(O.percentParent,g)+\" of \"+O.parent,j()),O.percentEntry=v.percentEntry=L/rd.getValue(r),O.entry=v.entry=rd.getPtLabel(r),Z(\"percent entry\")&&!E&&!v.onPathbar&&(H=rd.formatPercent(O.percentEntry,g)+\" of \"+O.entry,j()),O.percentRoot=v.percentRoot=L/rd.getValue(l),O.root=v.root=rd.getPtLabel(l),Z(\"percent root\")&&!E&&(H=rd.formatPercent(O.percentRoot,g)+\" of \"+O.root,j()),O.text=x(\"hovertext\")||x(\"text\"),Z(\"text\")&&(H=O.text,g6e.isValidTextValue(H)&&G.push(H)),P=[GE(v,b,a.eventDataKeys)];var re={trace:b,y:z,_x0:v._x0,_x1:v._x1,_y0:v._y0,_y1:v._y1,text:G.join(\"
\"),name:C||Z(\"name\")?b.name:void 0,color:x(\"hoverlabel.bgcolor\")||p.color,borderColor:x(\"hoverlabel.bordercolor\"),fontFamily:x(\"hoverlabel.font.family\"),fontSize:x(\"hoverlabel.font.size\"),fontColor:x(\"hoverlabel.font.color\"),fontWeight:x(\"hoverlabel.font.weight\"),fontStyle:x(\"hoverlabel.font.style\"),fontVariant:x(\"hoverlabel.font.variant\"),nameLength:x(\"hoverlabel.namelength\"),textAlign:x(\"hoverlabel.align\"),hovertemplate:C,hovertemplateLabels:O,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 oe=[];VE.loneHover(re,{container:_._hoverlayer.node(),outerContainer:_._paper.node(),gd:n,inOut_bbox:oe}),P[0].bbox=oe[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||[GE(v,b,a.eventDataKeys)],event:RA.event})}},h=function(v){var _=n._fullLayout,b=n._fullData[s.index],p=RA.select(this).datum();if(s._hasHoverEvent&&(v.originalEvent=RA.event,n.emit(\"plotly_unhover\",{points:[GE(p,b,a.eventDataKeys)],event:RA.event}),s._hasHoverEvent=!1),s._hasHoverLabel&&(VE.loneUnhover(_._hoverlayer.node()),s._hasHoverLabel=!1),c){var k=t.select(\"path.surface\");a.styleOne(k,p,b,n,{hovered:!1})}},d=function(v){var _=n._fullLayout,b=n._fullData[s.index],p=u&&(rd.isHierarchyRoot(v)||rd.isLeaf(v)),k=rd.getPtId(v),E=rd.isEntry(v)?rd.findEntryWithChild(l,k):rd.findEntryWithLevel(l,k),S=rd.getPtId(E),L={points:[GE(v,b,a.eventDataKeys)],event:RA.event};p||(L.nextLevel=S);var x=K6t.triggerHandler(n,\"plotly_\"+s.type+\"click\",L);if(x!==!1&&_.hovermode&&(n._hoverdata=[GE(v,b,a.eventDataKeys)],VE.click(n,RA.event)),!p&&x!==!1&&!n._dragging&&!n._transitioning){p6e.call(\"_storeDirectGUIEdit\",b,_._tracePreGUI[b.uid],{level:b.level});var C={data:[{level:S}],traces:[s.index]},M={frame:{redraw:!1,duration:a.transitionTime},transition:{duration:a.transitionTime,easing:a.transitionEasing},mode:\"immediate\",fromcurrent:!0};VE.loneUnhover(_._hoverlayer.node()),p6e.call(\"animate\",n,C,M)}};t.on(\"mouseover\",f),t.on(\"mouseout\",h),t.on(\"click\",d)};function GE(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 jE=Oa(),Q6t=PE(),Zg=(D2(),ob(R2)).interpolate,y6e=So(),Av=Dr(),eLt=ru(),w6e=bv(),_6e=w6e.recordMinTextSize,tLt=w6e.clearMinTextSize,T6e=yD(),rLt=l_().getRotationAngle,iLt=T6e.computeTransform,nLt=T6e.transformInsideText,aLt=UW().styleOne,oLt=N0().resizeText,sLt=HE(),VW=mW(),Rl=Ky();ND.plot=function(e,t,r,n){var i=e._fullLayout,a=i._sunburstlayer,o,s,l=!r,u=!i.uniformtext.mode&&Rl.hasTransition(r);if(tLt(\"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=jE.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){x6e(e,f,this,r)})})}else o.each(function(f){x6e(e,f,this,r)}),i.uniformtext.mode&&oLt(e,i._sunburstlayer.selectAll(\".trace\"),\"sunburst\");l&&o.exit().remove()};function x6e(e,t,r,n){var i=e._context.staticPlot,a=e._fullLayout,o=!a.uniformtext.mode&&Rl.hasTransition(n),s=jE.select(r),l=s.selectAll(\"g.slice\"),u=t[0],c=u.trace,f=u.hierarchy,h=Rl.findEntryWithLevel(f,c.level),d=Rl.getMaxDepth(c),v=a._size,_=c.domain,b=v.w*(_.x[1]-_.x[0]),p=v.h*(_.y[1]-_.y[0]),k=.5*Math.min(b,p),E=u.cx=v.l+v.w*(_.x[1]+_.x[0])/2,S=u.cy=v.t+v.h*(1-_.y[0])-p/2;if(!h)return l.remove();var L=null,x={};o&&l.each(function(me){x[Rl.getPtId(me)]={rpx0:me.rpx0,rpx1:me.rpx1,x0:me.x0,x1:me.x1,transform:me.transform},!L&&Rl.isEntry(me)&&(L=me)});var C=lLt(h).descendants(),M=h.height+1,g=0,P=d;u.hasMultipleRoots&&Rl.isHierarchyRoot(h)&&(C=C.slice(1),M-=1,g=1,P+=1),C=C.filter(function(me){return me.y1<=P});var T=rLt(c.rotation);T&&C.forEach(function(me){me.x0+=T,me.x1+=T});var z=Math.min(M,d),O=function(me){return(me-g)/z*k},V=function(me,ie){return[me*Math.cos(ie),-me*Math.sin(ie)]},G=function(me){return Av.pathAnnulus(me.rpx0,me.rpx1,me.x0,me.x1,E,S)},Z=function(me){return E+b6e(me)[0]*(me.transform.rCenter||0)+(me.transform.x||0)},H=function(me){return S+b6e(me)[1]*(me.transform.rCenter||0)+(me.transform.y||0)};l=l.data(C,Rl.getPtId),l.enter().append(\"g\").classed(\"slice\",!0),o?l.exit().transition().each(function(){var me=jE.select(this),ie=me.select(\"path.surface\");ie.transition().attrTween(\"d\",function(Le){var Ae=oe(Le);return function(Fe){return G(Ae(Fe))}});var Se=me.select(\"g.slicetext\");Se.attr(\"opacity\",0)}).remove():l.exit().remove(),l.order();var N=null;if(o&&L){var j=Rl.getPtId(L);l.each(function(me){N===null&&Rl.getPtId(me)===j&&(N=me.x1)})}var re=l;o&&(re=re.transition().each(\"end\",function(){var me=jE.select(this);Rl.setSliceCursor(me,e,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:!1})})),re.each(function(me){var ie=jE.select(this),Se=Av.ensureSingle(ie,\"path\",\"surface\",function(Re){Re.style(\"pointer-events\",i?\"none\":\"all\")});me.rpx0=O(me.y0),me.rpx1=O(me.y1),me.xmid=(me.x0+me.x1)/2,me.pxmid=V(me.rpx1,me.xmid),me.midangle=-(me.xmid-Math.PI/2),me.startangle=-(me.x0-Math.PI/2),me.stopangle=-(me.x1-Math.PI/2),me.halfangle=.5*Math.min(Av.angleDelta(me.x0,me.x1)||Math.PI,Math.PI),me.ring=1-me.rpx0/me.rpx1,me.rInscribed=uLt(me,c),o?Se.transition().attrTween(\"d\",function(Re){var ce=_e(Re);return function(Ze){return G(ce(Ze))}}):Se.attr(\"d\",G),ie.call(sLt,h,e,t,{eventDataKeys:VW.eventDataKeys,transitionTime:VW.CLICK_TRANSITION_TIME,transitionEasing:VW.CLICK_TRANSITION_EASING}).call(Rl.setSliceCursor,e,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:e._transitioning}),Se.call(aLt,me,c,e);var Le=Av.ensureSingle(ie,\"g\",\"slicetext\"),Ae=Av.ensureSingle(Le,\"text\",\"\",function(Re){Re.attr(\"data-notex\",1)}),Fe=Av.ensureUniformFontSize(e,Rl.determineTextFont(c,me,a.font));Ae.text(ND.formatSliceLabel(me,h,c,t,a)).classed(\"slicetext\",!0).attr(\"text-anchor\",\"middle\").call(y6e.font,Fe).call(eLt.convertToTspans,e);var Pe=y6e.bBox(Ae.node());me.transform=nLt(Pe,me,u),me.transform.targetX=Z(me),me.transform.targetY=H(me);var ge=function(Re,ce){var Ze=Re.transform;return iLt(Ze,ce),Ze.fontSize=Fe.size,_6e(c.type,Ze,a),Av.getTextTransform(Ze)};o?Ae.transition().attrTween(\"transform\",function(Re){var ce=Ee(Re);return function(Ze){return ge(ce(Ze),Pe)}}):Ae.attr(\"transform\",ge(me,Pe))});function oe(me){var ie=Rl.getPtId(me),Se=x[ie],Le=x[Rl.getPtId(h)],Ae;if(Le){var Fe=(me.x1>Le.x1?2*Math.PI:0)+T;Ae=me.rpx1N?2*Math.PI:0)+T;Se={x0:Ae,x1:Ae}}else Se={rpx0:k,rpx1:k},Av.extendFlat(Se,Ce(me));else Se={rpx0:0,rpx1:0};else Se={x0:T,x1:T};return Zg(Se,Le)}function Ee(me){var ie=x[Rl.getPtId(me)],Se,Le=me.transform;if(ie)Se=ie;else if(Se={rpx1:me.rpx1,transform:{textPosAngle:Le.textPosAngle,scale:0,rotate:Le.rotate,rCenter:Le.rCenter,x:Le.x,y:Le.y}},L)if(me.parent)if(N){var Ae=me.x1>N?2*Math.PI:0;Se.x0=Se.x1=Ae}else Av.extendFlat(Se,Ce(me));else Se.x0=Se.x1=T;else Se.x0=Se.x1=T;var Fe=Zg(Se.transform.textPosAngle,me.transform.textPosAngle),Pe=Zg(Se.rpx1,me.rpx1),ge=Zg(Se.x0,me.x0),Re=Zg(Se.x1,me.x1),ce=Zg(Se.transform.scale,Le.scale),Ze=Zg(Se.transform.rotate,Le.rotate),ut=Le.rCenter===0?3:Se.transform.rCenter===0?1/3:1,pt=Zg(Se.transform.rCenter,Le.rCenter),Zt=function(st){return pt(Math.pow(st,ut))};return function(st){var lt=Pe(st),Gt=ge(st),Nt=Re(st),Jt=Zt(st),sr=V(lt,(Gt+Nt)/2),wr=Fe(st),cr={pxmid:sr,rpx1:lt,transform:{textPosAngle:wr,rCenter:Jt,x:Le.x,y:Le.y}};return _6e(c.type,Le,a),{transform:{targetX:Z(cr),targetY:H(cr),scale:ce(st),rotate:Ze(st),rCenter:Jt}}}}function Ce(me){var ie=me.parent,Se=x[Rl.getPtId(ie)],Le={};if(Se){var Ae=ie.children,Fe=Ae.indexOf(me),Pe=Ae.length,ge=Zg(Se.x0,Se.x1);Le.x0=ge(Fe/Pe),Le.x1=ge(Fe/Pe)}else Le.x0=Le.x1=0;return Le}}function lLt(e){return Q6t.partition().size([2*Math.PI,e.height+1])(e)}ND.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=Rl.isHierarchyRoot(e),h=Rl.getParent(c,e),d=Rl.getValue(e);if(!a){var v=o.split(\"+\"),_=function(g){return v.indexOf(g)!==-1},b=[],p;if(_(\"label\")&&u.label&&b.push(u.label),u.hasOwnProperty(\"v\")&&_(\"value\")&&b.push(Rl.formatValue(u.v,s)),!f){_(\"current path\")&&b.push(Rl.getPath(e.data));var k=0;_(\"percent parent\")&&k++,_(\"percent entry\")&&k++,_(\"percent root\")&&k++;var E=k>1;if(k){var S,L=function(g){p=Rl.formatPercent(S,s),E&&(p+=\" of \"+g),b.push(p)};_(\"percent parent\")&&!f&&(S=d/Rl.getValue(h),L(\"parent\")),_(\"percent entry\")&&(S=d/Rl.getValue(t),L(\"entry\")),_(\"percent root\")&&(S=d/Rl.getValue(c),L(\"root\"))}}return _(\"text\")&&(p=Av.castOption(r,u.i,\"text\"),Av.isValidTextValue(p)&&b.push(p)),b.join(\"
\")}var x=Av.castOption(r,u.i,\"texttemplate\");if(!x)return\"\";var C={};u.label&&(C.label=u.label),u.hasOwnProperty(\"v\")&&(C.value=u.v,C.valueLabel=Rl.formatValue(u.v,s)),C.currentPath=Rl.getPath(e.data),f||(C.percentParent=d/Rl.getValue(h),C.percentParentLabel=Rl.formatPercent(C.percentParent,s),C.parent=Rl.getPtLabel(h)),C.percentEntry=d/Rl.getValue(t),C.percentEntryLabel=Rl.formatPercent(C.percentEntry,s),C.entry=Rl.getPtLabel(t),C.percentRoot=d/Rl.getValue(c),C.percentRootLabel=Rl.formatPercent(C.percentRoot,s),C.root=Rl.getPtLabel(c),u.hasOwnProperty(\"color\")&&(C.color=u.color);var M=Av.castOption(r,u.i,\"text\");return(Av.isValidTextValue(M)||M===\"\")&&(C.text=M),C.customdata=Av.castOption(r,u.i,\"customdata\"),Av.texttemplateString({data:[C,r._meta],fallback:r.texttemplatefallback,labels:C,locale:i._d3locale,template:x})};function uLt(e){return e.rpx0===0&&Av.isFullCircle([e.x0,e.x1])?1:Math.max(0,Math.min(1/(1+1/Math.sin(e.halfangle)),e.ring/2))}function b6e(e){return cLt(e.rpx1,e.transform.textPosAngle)}function cLt(e,t){return[e*Math.sin(t),-e*Math.cos(t)]}});var S6e=ye((e0r,A6e)=>{\"use strict\";A6e.exports={moduleType:\"trace\",name:\"sunburst\",basePlotModule:qke(),categories:[],animatable:!0,attributes:LE(),layoutAttributes:yW(),supplyDefaults:Xke(),supplyLayoutDefaults:Yke(),calc:RE().calc,crossTraceCalc:RE().crossTraceCalc,plot:UD().plot,style:UW().style,colorbar:$d(),meta:{}}});var E6e=ye((t0r,M6e)=>{\"use strict\";M6e.exports=S6e()});var C6e=ye(DA=>{\"use strict\";var k6e=Mc();DA.name=\"treemap\";DA.plot=function(e,t,r,n){k6e.plotBasePlot(DA.name,e,t,r,n)};DA.clean=function(e,t,r,n){k6e.cleanBasePlot(DA.name,e,t,r,n)}});var z2=ye((i0r,L6e)=>{\"use strict\";L6e.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:\"poly\",eventDataKeys:[\"currentPath\",\"root\",\"entry\",\"percentRoot\",\"percentEntry\",\"percentParent\"],gapWithPathbar:1}});var VD=ye((n0r,R6e)=>{\"use strict\";var{hovertemplateAttrs:fLt,texttemplateAttrs:hLt,templatefallbackAttrs:P6e}=Ll(),dLt=Tu(),vLt=Cc().attributes,O2=S2(),Q0=LE(),I6e=z2(),GW=Ao().extendFlat,pLt=Pd().pattern;R6e.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:GW({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:pLt,depthfade:{valType:\"enumerated\",values:[!0,!1,\"reversed\"],editType:\"style\"},line:Q0.marker.line,cornerradius:{valType:\"number\",min:0,dflt:0,editType:\"plot\"},editType:\"calc\"},dLt(\"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:GW({},O2.textfont,{}),editType:\"calc\"},text:O2.text,textinfo:Q0.textinfo,texttemplate:hLt({editType:\"plot\"},{keys:I6e.eventDataKeys.concat([\"label\",\"value\"])}),texttemplatefallback:P6e({editType:\"plot\"}),hovertext:O2.hovertext,hoverinfo:Q0.hoverinfo,hovertemplate:fLt({},{keys:I6e.eventDataKeys}),hovertemplatefallback:P6e(),textfont:O2.textfont,insidetextfont:O2.insidetextfont,outsidetextfont:GW({},O2.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:O2.sort,root:Q0.root,domain:vLt({name:\"treemap\",trace:!0,editType:\"calc\"})}});var HW=ye((a0r,D6e)=>{\"use strict\";D6e.exports={treemapcolorway:{valType:\"colorlist\",editType:\"calc\"},extendtreemapcolors:{valType:\"boolean\",dflt:!0,editType:\"calc\"}}});var q6e=ye((o0r,O6e)=>{\"use strict\";var F6e=Dr(),gLt=VD(),mLt=ka(),yLt=Cc().defaults,_Lt=r0().handleText,xLt=e2().TEXTPAD,bLt=M2().handleMarkerDefaults,z6e=tc(),wLt=z6e.hasColorscale,TLt=z6e.handleDefaults;O6e.exports=function(t,r,n,i){function a(b,p){return F6e.coerce(t,r,gLt,b,p)}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\"),a(\"texttemplatefallback\"),r.texttemplate||a(\"textinfo\",F6e.isArrayOrTypedArray(c)?\"text+label\":\"label\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\");var f=a(\"pathbar.visible\"),h=\"auto\";_Lt(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;bLt(t,r,i,a);var v=r._hasColorscale=wLt(t,\"marker\",\"colors\")||(t.marker||{}).coloraxis;v?TLt(t,r,i,a,{prefix:\"marker.\",cLetter:\"c\"}):a(\"marker.depthfade\",!(r.marker.colors||[]).length);var _=r.textfont.size*2;a(\"marker.pad.t\",d?_/4:_),a(\"marker.pad.l\",_/4),a(\"marker.pad.r\",_/4),a(\"marker.pad.b\",d?_:_/4),a(\"marker.cornerradius\"),r._hovered={marker:{line:{width:2,color:mLt.contrast(i.paper_bgcolor)}}},f&&(a(\"pathbar.thickness\",r.pathbar.textfont.size+2*xLt),a(\"pathbar.side\"),a(\"pathbar.edgeshape\")),a(\"sort\"),a(\"root.color\"),yLt(r,i,a),r._length=null}});var N6e=ye((s0r,B6e)=>{\"use strict\";var ALt=Dr(),SLt=HW();B6e.exports=function(t,r){function n(i,a){return ALt.coerce(t,r,SLt,i,a)}n(\"treemapcolorway\",r.colorway),n(\"extendtreemapcolors\")}});var WW=ye(jW=>{\"use strict\";var U6e=RE();jW.calc=function(e,t){return U6e.calc(e,t)};jW.crossTraceCalc=function(e){return U6e._runCrossTraceCalc(\"treemap\",e)}});var XW=ye((u0r,V6e)=>{\"use strict\";V6e.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 FA=PE(),MLt=XW();G6e.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=FA.treemap().tile(ELt(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)&&MLt(h,r,{swapXY:o,flipX:i,flipY:a}),h};function ELt(e,t){switch(e){case\"squarify\":return FA.treemapSquarify.ratio(t);case\"binary\":return FA.treemapBinary;case\"dice\":return FA.treemapDice;case\"slice\":return FA.treemapSlice;default:return FA.treemapSliceDice}}});var GD=ye((f0r,X6e)=>{\"use strict\";var H6e=Oa(),zA=ka(),j6e=Dr(),YW=Ky(),kLt=bv().resizeText,CLt=BD();function LLt(e){var t=e._fullLayout._treemaplayer.selectAll(\".trace\");kLt(e,t,\"treemap\"),t.each(function(r){var n=H6e.select(this),i=r[0],a=i.trace;n.style(\"opacity\",a.opacity),n.selectAll(\"path.surface\").each(function(o){H6e.select(this).call(W6e,o,a,e,{hovered:!1})})})}function W6e(e,t,r,n,i){var a=(i||{}).hovered,o=t.data.data,s=o.i,l,u,c=o.color,f=YW.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=j6e.castOption(r,s,\"marker.line.color\")||zA.defaultLine,u=j6e.castOption(r,s,\"marker.line.width\")||0,!r._hasColorscale&&!t.onPathbar){var d=r.marker.depthfade;if(d){var v=zA.combine(zA.addOpacity(r._backgroundColor,.75),c),_;if(d===!0){var b=YW.getMaxDepth(r);isFinite(b)?YW.isLeaf(t)?_=0:_=r._maxVisibleLayers-(t.data.depth-r._entryDepth):_=t.data.height+1}else _=t.data.depth-r._entryDepth,r._atRootLevel||_++;if(_>0)for(var p=0;p<_;p++){var k=.5*p/_;c=zA.combine(zA.addOpacity(v,k),c)}}}e.call(CLt,t,r,n,c).style(\"stroke-width\",u).call(zA.stroke,l).style(\"opacity\",h)}X6e.exports={style:LLt,styleOne:W6e}});var $6e=ye((h0r,J6e)=>{\"use strict\";var Z6e=Oa(),HD=Dr(),Y6e=So(),PLt=ru(),ILt=ZW(),K6e=GD().styleOne,KW=z2(),OA=Ky(),RLt=HE(),JW=!0;J6e.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,_=a.handleSlicesExit,b=a.makeUpdateSliceInterpolator,p=a.makeUpdateTextInterpolator,k={},E=t._context.staticPlot,S=t._fullLayout,L=r[0],x=L.trace,C=L.hierarchy,M=s/x._entryDepth,g=OA.listPath(n.data,\"id\"),P=ILt(C.copy(),[s,l],{packing:\"dice\",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();P=P.filter(function(z){var O=g.indexOf(z.data.id);return O===-1?!1:(z.x0=M*O,z.x1=M*(O+1),z.y0=o,z.y1=o+l,z.onPathbar=!0,!0)}),P.reverse(),i=i.data(P,OA.getPtId),i.enter().append(\"g\").classed(\"pathbar\",!0),_(i,JW,k,[s,l],f),i.order();var T=i;v&&(T=T.transition().each(\"end\",function(){var z=Z6e.select(this);OA.setSliceCursor(z,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})})),T.each(function(z){z._x0=u(z.x0),z._x1=u(z.x1),z._y0=c(z.y0),z._y1=c(z.y1),z._hoverX=u(z.x1-Math.min(s,l)/2),z._hoverY=c(z.y1-l/2);var O=Z6e.select(this),V=HD.ensureSingle(O,\"path\",\"surface\",function(N){N.style(\"pointer-events\",E?\"none\":\"all\")});v?V.transition().attrTween(\"d\",function(N){var j=b(N,JW,k,[s,l]);return function(re){return f(j(re))}}):V.attr(\"d\",f),O.call(RLt,n,t,r,{styleOne:K6e,eventDataKeys:KW.eventDataKeys,transitionTime:KW.CLICK_TRANSITION_TIME,transitionEasing:KW.CLICK_TRANSITION_EASING}).call(OA.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),V.call(K6e,z,x,t,{hovered:!1}),z._text=(OA.getPtLabel(z)||\"\").split(\"
\").join(\" \")||\"\";var G=HD.ensureSingle(O,\"g\",\"slicetext\"),Z=HD.ensureSingle(G,\"text\",\"\",function(N){N.attr(\"data-notex\",1)}),H=HD.ensureUniformFontSize(t,OA.determineTextFont(x,z,S.font,{onPathbar:!0}));Z.text(z._text||\" \").classed(\"slicetext\",!0).attr(\"text-anchor\",\"start\").call(Y6e.font,H).call(PLt.convertToTspans,t),z.textBB=Y6e.bBox(Z.node()),z.transform=h(z,{fontSize:H.size,onPathbar:!0}),z.transform.fontSize=H.size,v?Z.transition().attrTween(\"transform\",function(N){var j=p(N,JW,k,[s,l]);return function(re){return d(j(re))}}):Z.attr(\"transform\",d(z))})}});var rLe=ye((d0r,tLe)=>{\"use strict\";var Q6e=Oa(),$W=(D2(),ob(R2)).interpolate,Z_=Ky(),WE=Dr(),eLe=e2().TEXTPAD,DLt=n2(),FLt=DLt.toMoveInsideBar,zLt=bv(),QW=zLt.recordMinTextSize,OLt=z2(),qLt=$6e();function q2(e){return Z_.isHierarchyRoot(e)?\"\":Z_.getPtId(e)}tLe.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=Z_.findEntryWithLevel(f,l.level),d=Q6e.select(n),v=d.selectAll(\"g.pathbar\"),_=d.selectAll(\"g.slice\");if(!h){v.remove(),_.remove();return}var b=Z_.isHierarchyRoot(h),p=!o.uniformtext.mode&&Z_.hasTransition(i),k=Z_.getMaxDepth(l),E=function($e){return $e.data.depth-h.data.depth-1?C+P:-(g+P):0,z={x0:M,x1:M,y0:T,y1:T+g},O=function($e,St,Qt){var Vt=l.tiling.pad,_t=function(lr){return lr-Vt<=St.x0},It=function(lr){return lr+Vt>=St.x1},mt=function(lr){return lr-Vt<=St.y0},er=function(lr){return lr+Vt>=St.y1};return $e.x0===St.x0&&$e.x1===St.x1&&$e.y0===St.y0&&$e.y1===St.y1?{x0:$e.x0,x1:$e.x1,y0:$e.y0,y1:$e.y1}:{x0:_t($e.x0-Vt)?0:It($e.x0-Vt)?Qt[0]:$e.x0,x1:_t($e.x1+Vt)?0:It($e.x1+Vt)?Qt[0]:$e.x1,y0:mt($e.y0-Vt)?0:er($e.y0-Vt)?Qt[1]:$e.y0,y1:mt($e.y1+Vt)?0:er($e.y1+Vt)?Qt[1]:$e.y1}},V=null,G={},Z={},H=null,N=function($e,St){return St?G[q2($e)]:Z[q2($e)]},j=function($e,St,Qt,Vt){if(St)return G[q2(f)]||z;var _t=Z[l.level]||Qt;return E($e)?O($e,_t,Vt):{}};s.hasMultipleRoots&&b&&k++,l._maxDepth=k,l._backgroundColor=o.paper_bgcolor,l._entryDepth=h.data.depth,l._atRootLevel=b;var re=-x/2+S.l+S.w*(L.x[1]+L.x[0])/2,oe=-C/2+S.t+S.h*(1-(L.y[1]+L.y[0])/2),_e=function($e){return re+$e},Ee=function($e){return oe+$e},Ce=Ee(0),me=_e(0),ie=function($e){return me+$e},Se=function($e){return Ce+$e};function Le($e,St){return $e+\",\"+St}var Ae=ie(0),Fe=function($e){$e.x=Math.max(Ae,$e.x)},Pe=l.pathbar.edgeshape,ge=function($e){var St=ie(Math.max(Math.min($e.x0,$e.x0),0)),Qt=ie(Math.min(Math.max($e.x1,$e.x1),M)),Vt=Se($e.y0),_t=Se($e.y1),It=g/2,mt={},er={};mt.x=St,er.x=Qt,mt.y=er.y=(Vt+_t)/2;var lr={x:St,y:Vt},Tr={x:Qt,y:Vt},Lr={x:Qt,y:_t},ti={x:St,y:_t};return Pe===\">\"?(lr.x-=It,Tr.x-=It,Lr.x-=It,ti.x-=It):Pe===\"/\"?(Lr.x-=It,ti.x-=It,mt.x-=It/2,er.x-=It/2):Pe===\"\\\\\"?(lr.x-=It,Tr.x-=It,mt.x-=It/2,er.x-=It/2):Pe===\"<\"&&(mt.x-=It,er.x-=It),Fe(lr),Fe(ti),Fe(mt),Fe(Tr),Fe(Lr),Fe(er),\"M\"+Le(lr.x,lr.y)+\"L\"+Le(Tr.x,Tr.y)+\"L\"+Le(er.x,er.y)+\"L\"+Le(Lr.x,Lr.y)+\"L\"+Le(ti.x,ti.y)+\"L\"+Le(mt.x,mt.y)+\"Z\"},Re=l[c?\"tiling\":\"marker\"].pad,ce=function($e){return l.textposition.indexOf($e)!==-1},Ze=ce(\"top\"),ut=ce(\"left\"),pt=ce(\"right\"),Zt=ce(\"bottom\"),st=function($e){var St=_e($e.x0),Qt=_e($e.x1),Vt=Ee($e.y0),_t=Ee($e.y1),It=Qt-St,mt=_t-Vt;if(!It||!mt)return\"\";var er=l.marker.cornerradius||0,lr=Math.min(er,It/2,mt/2);lr&&$e.data&&$e.data.data&&$e.data.data.label&&(Ze&&(lr=Math.min(lr,Re.t)),ut&&(lr=Math.min(lr,Re.l)),pt&&(lr=Math.min(lr,Re.r)),Zt&&(lr=Math.min(lr,Re.b)));var Tr=function(Lr,ti){return lr?\"a\"+Le(lr,lr)+\" 0 0 1 \"+Le(Lr,ti):\"\"};return\"M\"+Le(St,Vt+lr)+Tr(lr,-lr)+\"L\"+Le(Qt-lr,Vt)+Tr(lr,lr)+\"L\"+Le(Qt,_t-lr)+Tr(-lr,lr)+\"L\"+Le(St+lr,_t)+Tr(-lr,-lr)+\"Z\"},lt=function($e,St){var Qt=$e.x0,Vt=$e.x1,_t=$e.y0,It=$e.y1,mt=$e.textBB,er=Ze||St.isHeader&&!Zt,lr=er?\"start\":Zt?\"end\":\"middle\",Tr=ce(\"right\"),Lr=ce(\"left\")||St.onPathbar,ti=Lr?-1:Tr?1:0;if(St.isHeader){if(Qt+=(c?Re:Re.l)-eLe,Vt-=(c?Re:Re.r)-eLe,Qt>=Vt){var Br=(Qt+Vt)/2;Qt=Br,Vt=Br}var Vr;Zt?(Vr=It-(c?Re:Re.b),_t{\"use strict\";var BLt=Oa(),NLt=Ky(),ULt=bv(),VLt=ULt.clearMinTextSize,GLt=N0().resizeText,iLe=rLe();nLe.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(VLt(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&&NLt.hasTransition(n)){i&&(f=i());var d=BLt.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){iLe(t,v,this,n,s)})})}else c.each(function(v){iLe(t,v,this,n,s)}),l.uniformtext.mode&&GLt(t,u.selectAll(\".trace\"),o);h&&c.exit().remove()}});var uLe=ye((p0r,lLe)=>{\"use strict\";var aLe=Oa(),jD=Dr(),oLe=So(),HLt=ru(),jLt=ZW(),sLe=GD().styleOne,tX=z2(),Y_=Ky(),WLt=HE(),XLt=UD().formatSliceLabel,rX=!1;lLe.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,_=a.makeUpdateSliceInterpolator,b=a.makeUpdateTextInterpolator,p=a.prevEntry,k={},E=t._context.staticPlot,S=t._fullLayout,L=r[0],x=L.trace,C=x.textposition.indexOf(\"left\")!==-1,M=x.textposition.indexOf(\"right\")!==-1,g=x.textposition.indexOf(\"bottom\")!==-1,P=!g&&!x.marker.pad.t||g&&!x.marker.pad.b,T=jLt(n,[o,s],{packing:x.tiling.packing,squarifyratio:x.tiling.squarifyratio,flipX:x.tiling.flip.indexOf(\"x\")>-1,flipY:x.tiling.flip.indexOf(\"y\")>-1,pad:{inner:x.tiling.pad,top:x.marker.pad.t,left:x.marker.pad.l,right:x.marker.pad.r,bottom:x.marker.pad.b}}),z=T.descendants(),O=1/0,V=-1/0;z.forEach(function(j){var re=j.depth;re>=x._maxDepth?(j.x0=j.x1=(j.x0+j.x1)/2,j.y0=j.y1=(j.y0+j.y1)/2):(O=Math.min(O,re),V=Math.max(V,re))}),i=i.data(z,Y_.getPtId),x._maxVisibleLayers=isFinite(V)?V-O+1:0,i.enter().append(\"g\").classed(\"slice\",!0),v(i,rX,k,[o,s],c),i.order();var G=null;if(d&&p){var Z=Y_.getPtId(p);i.each(function(j){G===null&&Y_.getPtId(j)===Z&&(G={x0:j.x0,x1:j.x1,y0:j.y0,y1:j.y1})})}var H=function(){return G||{x0:0,x1:o,y0:0,y1:s}},N=i;return d&&(N=N.transition().each(\"end\",function(){var j=aLe.select(this);Y_.setSliceCursor(j,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})})),N.each(function(j){var re=Y_.isHeader(j,x);j._x0=l(j.x0),j._x1=l(j.x1),j._y0=u(j.y0),j._y1=u(j.y1),j._hoverX=l(j.x1-x.marker.pad.r),j._hoverY=u(g?j.y1-x.marker.pad.b/2:j.y0+x.marker.pad.t/2);var oe=aLe.select(this),_e=jD.ensureSingle(oe,\"path\",\"surface\",function(Le){Le.style(\"pointer-events\",E?\"none\":\"all\")});d?_e.transition().attrTween(\"d\",function(Le){var Ae=_(Le,rX,H(),[o,s]);return function(Fe){return c(Ae(Fe))}}):_e.attr(\"d\",c),oe.call(WLt,n,t,r,{styleOne:sLe,eventDataKeys:tX.eventDataKeys,transitionTime:tX.CLICK_TRANSITION_TIME,transitionEasing:tX.CLICK_TRANSITION_EASING}).call(Y_.setSliceCursor,t,{isTransitioning:t._transitioning}),_e.call(sLe,j,x,t,{hovered:!1}),j.x0===j.x1||j.y0===j.y1?j._text=\"\":re?j._text=P?\"\":Y_.getPtLabel(j)||\"\":j._text=XLt(j,n,x,r,S)||\"\";var Ee=jD.ensureSingle(oe,\"g\",\"slicetext\"),Ce=jD.ensureSingle(Ee,\"text\",\"\",function(Le){Le.attr(\"data-notex\",1)}),me=jD.ensureUniformFontSize(t,Y_.determineTextFont(x,j,S.font)),ie=j._text||\" \",Se=re&&ie.indexOf(\"
\")===-1;Ce.text(ie).classed(\"slicetext\",!0).attr(\"text-anchor\",M?\"end\":C||Se?\"start\":\"middle\").call(oLe.font,me).call(HLt.convertToTspans,t),j.textBB=oLe.bBox(Ce.node()),j.transform=f(j,{fontSize:me.size,isHeader:re}),j.transform.fontSize=me.size,d?Ce.transition().attrTween(\"transform\",function(Le){var Ae=b(Le,rX,H(),[o,s]);return function(Fe){return h(Ae(Fe))}}):Ce.attr(\"transform\",h(j))}),G}});var fLe=ye((g0r,cLe)=>{\"use strict\";var ZLt=eX(),YLt=uLe();cLe.exports=function(t,r,n,i){return ZLt(t,r,n,i,{type:\"treemap\",drawDescendants:YLt})}});var dLe=ye((m0r,hLe)=>{\"use strict\";hLe.exports={moduleType:\"trace\",name:\"treemap\",basePlotModule:C6e(),categories:[],animatable:!0,attributes:VD(),layoutAttributes:HW(),supplyDefaults:q6e(),supplyLayoutDefaults:N6e(),calc:WW().calc,crossTraceCalc:WW().crossTraceCalc,plot:fLe(),style:GD().style,colorbar:$d(),meta:{}}});var pLe=ye((y0r,vLe)=>{\"use strict\";vLe.exports=dLe()});var mLe=ye(qA=>{\"use strict\";var gLe=Mc();qA.name=\"icicle\";qA.plot=function(e,t,r,n){gLe.plotBasePlot(qA.name,e,t,r,n)};qA.clean=function(e,t,r,n){gLe.cleanBasePlot(qA.name,e,t,r,n)}});var iX=ye((x0r,xLe)=>{\"use strict\";var{hovertemplateAttrs:KLt,texttemplateAttrs:JLt,templatefallbackAttrs:yLe}=Ll(),$Lt=Tu(),QLt=Cc().attributes,XE=S2(),o0=LE(),WD=VD(),_Le=z2(),ePt=Ao().extendFlat,tPt=Pd().pattern;xLe.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:WD.tiling.flip,pad:{valType:\"number\",min:0,dflt:0,editType:\"plot\"},editType:\"calc\"},marker:ePt({colors:o0.marker.colors,line:o0.marker.line,pattern:tPt,editType:\"calc\"},$Lt(\"marker\",{colorAttr:\"colors\",anim:!1})),leaf:o0.leaf,pathbar:WD.pathbar,text:XE.text,textinfo:o0.textinfo,texttemplate:JLt({editType:\"plot\"},{keys:_Le.eventDataKeys.concat([\"label\",\"value\"])}),texttemplatefallback:yLe({editType:\"plot\"}),hovertext:XE.hovertext,hoverinfo:o0.hoverinfo,hovertemplate:KLt({},{keys:_Le.eventDataKeys}),hovertemplatefallback:yLe(),textfont:XE.textfont,insidetextfont:XE.insidetextfont,outsidetextfont:WD.outsidetextfont,textposition:WD.textposition,sort:XE.sort,root:o0.root,domain:QLt({name:\"icicle\",trace:!0,editType:\"calc\"})}});var nX=ye((b0r,bLe)=>{\"use strict\";bLe.exports={iciclecolorway:{valType:\"colorlist\",editType:\"calc\"},extendiciclecolors:{valType:\"boolean\",dflt:!0,editType:\"calc\"}}});var SLe=ye((w0r,ALe)=>{\"use strict\";var wLe=Dr(),rPt=iX(),iPt=ka(),nPt=Cc().defaults,aPt=r0().handleText,oPt=e2().TEXTPAD,sPt=M2().handleMarkerDefaults,TLe=tc(),lPt=TLe.hasColorscale,uPt=TLe.handleDefaults;ALe.exports=function(t,r,n,i){function a(d,v){return wLe.coerce(t,r,rPt,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\"),a(\"texttemplatefallback\"),r.texttemplate||a(\"textinfo\",wLe.isArrayOrTypedArray(u)?\"text+label\":\"label\"),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\");var c=a(\"pathbar.visible\"),f=\"auto\";aPt(t,r,i,a,f,{hasPathbar:c,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),a(\"textposition\"),sPt(t,r,i,a);var h=r._hasColorscale=lPt(t,\"marker\",\"colors\")||(t.marker||{}).coloraxis;h&&uPt(t,r,i,a,{prefix:\"marker.\",cLetter:\"c\"}),a(\"leaf.opacity\",h?1:.7),r._hovered={marker:{line:{width:2,color:iPt.contrast(i.paper_bgcolor)}}},c&&(a(\"pathbar.thickness\",r.pathbar.textfont.size+2*oPt),a(\"pathbar.side\"),a(\"pathbar.edgeshape\")),a(\"sort\"),a(\"root.color\"),nPt(r,i,a),r._length=null}});var ELe=ye((T0r,MLe)=>{\"use strict\";var cPt=Dr(),fPt=nX();MLe.exports=function(t,r){function n(i,a){return cPt.coerce(t,r,fPt,i,a)}n(\"iciclecolorway\",r.colorway),n(\"extendiciclecolors\")}});var oX=ye(aX=>{\"use strict\";var kLe=RE();aX.calc=function(e,t){return kLe.calc(e,t)};aX.crossTraceCalc=function(e){return kLe._runCrossTraceCalc(\"icicle\",e)}});var LLe=ye((S0r,CLe)=>{\"use strict\";var hPt=PE(),dPt=XW();CLe.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=hPt.partition().padding(n.pad.inner).size(o?[r[1],l]:[r[0],u])(t);return(o||i||a)&&dPt(c,r,{swapXY:o,flipX:i,flipY:a}),c}});var sX=ye((M0r,FLe)=>{\"use strict\";var PLe=Oa(),ILe=ka(),RLe=Dr(),vPt=bv().resizeText,pPt=BD();function gPt(e){var t=e._fullLayout._iciclelayer.selectAll(\".trace\");vPt(e,t,\"icicle\"),t.each(function(r){var n=PLe.select(this),i=r[0],a=i.trace;n.style(\"opacity\",a.opacity),n.selectAll(\"path.surface\").each(function(o){PLe.select(this).call(DLe,o,a,e)})})}function DLe(e,t,r,n){var i=t.data.data,a=!t.children,o=i.i,s=RLe.castOption(r,o,\"marker.line.color\")||ILe.defaultLine,l=RLe.castOption(r,o,\"marker.line.width\")||0;e.call(pPt,t,r,n).style(\"stroke-width\",l).call(ILe.stroke,s).style(\"opacity\",a?r.leaf.opacity:null)}FLe.exports={style:gPt,styleOne:DLe}});var NLe=ye((E0r,BLe)=>{\"use strict\";var zLe=Oa(),XD=Dr(),OLe=So(),mPt=ru(),yPt=LLe(),qLe=sX().styleOne,lX=z2(),BA=Ky(),_Pt=HE(),xPt=UD().formatSliceLabel,uX=!1;BLe.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,_=a.makeUpdateSliceInterpolator,b=a.makeUpdateTextInterpolator,p=a.prevEntry,k={},E=t._context.staticPlot,S=t._fullLayout,L=r[0],x=L.trace,C=x.textposition.indexOf(\"left\")!==-1,M=x.textposition.indexOf(\"right\")!==-1,g=x.textposition.indexOf(\"bottom\")!==-1,P=yPt(n,[o,s],{flipX:x.tiling.flip.indexOf(\"x\")>-1,flipY:x.tiling.flip.indexOf(\"y\")>-1,orientation:x.tiling.orientation,pad:{inner:x.tiling.pad},maxDepth:x._maxDepth}),T=P.descendants(),z=1/0,O=-1/0;T.forEach(function(N){var j=N.depth;j>=x._maxDepth?(N.x0=N.x1=(N.x0+N.x1)/2,N.y0=N.y1=(N.y0+N.y1)/2):(z=Math.min(z,j),O=Math.max(O,j))}),i=i.data(T,BA.getPtId),x._maxVisibleLayers=isFinite(O)?O-z+1:0,i.enter().append(\"g\").classed(\"slice\",!0),v(i,uX,k,[o,s],c),i.order();var V=null;if(d&&p){var G=BA.getPtId(p);i.each(function(N){V===null&&BA.getPtId(N)===G&&(V={x0:N.x0,x1:N.x1,y0:N.y0,y1:N.y1})})}var Z=function(){return V||{x0:0,x1:o,y0:0,y1:s}},H=i;return d&&(H=H.transition().each(\"end\",function(){var N=zLe.select(this);BA.setSliceCursor(N,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})})),H.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-x.tiling.pad),N._hoverY=u(g?N.y1-x.tiling.pad/2:N.y0+x.tiling.pad/2);var j=zLe.select(this),re=XD.ensureSingle(j,\"path\",\"surface\",function(Ce){Ce.style(\"pointer-events\",E?\"none\":\"all\")});d?re.transition().attrTween(\"d\",function(Ce){var me=_(Ce,uX,Z(),[o,s],{orientation:x.tiling.orientation,flipX:x.tiling.flip.indexOf(\"x\")>-1,flipY:x.tiling.flip.indexOf(\"y\")>-1});return function(ie){return c(me(ie))}}):re.attr(\"d\",c),j.call(_Pt,n,t,r,{styleOne:qLe,eventDataKeys:lX.eventDataKeys,transitionTime:lX.CLICK_TRANSITION_TIME,transitionEasing:lX.CLICK_TRANSITION_EASING}).call(BA.setSliceCursor,t,{isTransitioning:t._transitioning}),re.call(qLe,N,x,t,{hovered:!1}),N.x0===N.x1||N.y0===N.y1?N._text=\"\":N._text=xPt(N,n,x,r,S)||\"\";var oe=XD.ensureSingle(j,\"g\",\"slicetext\"),_e=XD.ensureSingle(oe,\"text\",\"\",function(Ce){Ce.attr(\"data-notex\",1)}),Ee=XD.ensureUniformFontSize(t,BA.determineTextFont(x,N,S.font));_e.text(N._text||\" \").classed(\"slicetext\",!0).attr(\"text-anchor\",M?\"end\":C?\"start\":\"middle\").call(OLe.font,Ee).call(mPt.convertToTspans,t),N.textBB=OLe.bBox(_e.node()),N.transform=f(N,{fontSize:Ee.size}),N.transform.fontSize=Ee.size,d?_e.transition().attrTween(\"transform\",function(Ce){var me=b(Ce,uX,Z(),[o,s]);return function(ie){return h(me(ie))}}):_e.attr(\"transform\",h(N))}),V}});var VLe=ye((k0r,ULe)=>{\"use strict\";var bPt=eX(),wPt=NLe();ULe.exports=function(t,r,n,i){return bPt(t,r,n,i,{type:\"icicle\",drawDescendants:wPt})}});var HLe=ye((C0r,GLe)=>{\"use strict\";GLe.exports={moduleType:\"trace\",name:\"icicle\",basePlotModule:mLe(),categories:[],animatable:!0,attributes:iX(),layoutAttributes:nX(),supplyDefaults:SLe(),supplyLayoutDefaults:ELe(),calc:oX().calc,crossTraceCalc:oX().crossTraceCalc,plot:VLe(),style:sX().style,colorbar:$d(),meta:{}}});var WLe=ye((L0r,jLe)=>{\"use strict\";jLe.exports=HLe()});var ZLe=ye(NA=>{\"use strict\";var XLe=Mc();NA.name=\"funnelarea\";NA.plot=function(e,t,r,n){XLe.plotBasePlot(NA.name,e,t,r,n)};NA.clean=function(e,t,r,n){XLe.cleanBasePlot(NA.name,e,t,r,n)}});var cX=ye((I0r,KLe)=>{\"use strict\";var iv=S2(),TPt=Gl(),APt=Cc().attributes,{hovertemplateAttrs:SPt,texttemplateAttrs:MPt,templatefallbackAttrs:YLe}=Ll(),B2=Ao().extendFlat;KLe.exports={labels:iv.labels,label0:iv.label0,dlabel:iv.dlabel,values:iv.values,marker:{colors:iv.marker.colors,line:{color:B2({},iv.marker.line.color,{dflt:null}),width:B2({},iv.marker.line.width,{dflt:1}),editType:\"calc\"},pattern:iv.marker.pattern,editType:\"calc\"},text:iv.text,hovertext:iv.hovertext,scalegroup:B2({},iv.scalegroup,{}),textinfo:B2({},iv.textinfo,{flags:[\"label\",\"text\",\"value\",\"percent\"]}),texttemplate:MPt({editType:\"plot\"},{keys:[\"label\",\"color\",\"value\",\"text\",\"percent\"]}),texttemplatefallback:YLe({editType:\"plot\"}),hoverinfo:B2({},TPt.hoverinfo,{flags:[\"label\",\"text\",\"value\",\"percent\",\"name\"]}),hovertemplate:SPt({},{keys:[\"label\",\"color\",\"value\",\"text\",\"percent\"]}),hovertemplatefallback:YLe(),textposition:B2({},iv.textposition,{values:[\"inside\",\"none\"],dflt:\"inside\"}),textfont:iv.textfont,insidetextfont:iv.insidetextfont,title:{text:iv.title.text,font:iv.title.font,position:B2({},iv.title.position,{values:[\"top left\",\"top center\",\"top right\"],dflt:\"top center\"}),editType:\"plot\"},domain:APt({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 fX=ye((R0r,JLe)=>{\"use strict\";var EPt=vD().hiddenlabels;JLe.exports={hiddenlabels:EPt,funnelareacolorway:{valType:\"colorlist\",editType:\"calc\"},extendfunnelareacolors:{valType:\"boolean\",dflt:!0,editType:\"calc\"}}});var ePe=ye((D0r,QLe)=>{\"use strict\";var $Le=Dr(),kPt=cX(),CPt=Cc().defaults,LPt=r0().handleText,PPt=M2().handleLabelsAndValues,IPt=M2().handleMarkerDefaults;QLe.exports=function(t,r,n,i){function a(_,b){return $Le.coerce(t,r,kPt,_,b)}var o=a(\"labels\"),s=a(\"values\"),l=PPt(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,IPt(t,r,i,a),a(\"scalegroup\");var c=a(\"text\"),f=a(\"texttemplate\");a(\"texttemplatefallback\");var h;if(f||(h=a(\"textinfo\",Array.isArray(c)?\"text+percent\":\"percent\")),a(\"hovertext\"),a(\"hovertemplate\"),a(\"hovertemplatefallback\"),f||h&&h!==\"none\"){var d=a(\"textposition\");LPt(t,r,i,a,d,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}else h===\"none\"&&a(\"textposition\",\"none\");CPt(r,i,a);var v=a(\"title.text\");v&&(a(\"title.position\"),$Le.coerceFont(a,\"title.font\",i.font)),a(\"aspectratio\"),a(\"baseratio\")}});var rPe=ye((F0r,tPe)=>{\"use strict\";var RPt=Dr(),DPt=fX();tPe.exports=function(t,r){function n(i,a){return RPt.coerce(t,r,DPt,i,a)}n(\"hiddenlabels\"),n(\"funnelareacolorway\",r.colorway),n(\"extendfunnelareacolors\")}});var hX=ye((z0r,nPe)=>{\"use strict\";var iPe=wA();function FPt(e,t){return iPe.calc(e,t)}function zPt(e){iPe.crossTraceCalc(e,{type:\"funnelarea\"})}nPe.exports={calc:FPt,crossTraceCalc:zPt}});var uPe=ye((O0r,lPe)=>{\"use strict\";var N2=Oa(),dX=So(),K_=Dr(),OPt=K_.strScale,aPe=K_.strTranslate,oPe=ru(),qPt=n2(),BPt=qPt.toMoveInsideBar,sPe=bv(),NPt=sPe.recordMinTextSize,UPt=sPe.clearMinTextSize,VPt=l_(),UA=yD(),GPt=UA.attachFxHandlers,HPt=UA.determineInsideTextFont,jPt=UA.layoutAreas,WPt=UA.prerenderTitles,XPt=UA.positionTitleOutside,ZPt=UA.formatSliceLabel;lPe.exports=function(t,r){var n=t._context.staticPlot,i=t._fullLayout;UPt(\"funnelarea\",i),WPt(r,t),jPt(r,i._size),K_.makeTraceGroups(i._funnelarealayer,r,\"trace\").each(function(a){var o=N2.select(this),s=a[0],l=s.trace;KPt(a),o.each(function(){var u=N2.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){N2.select(this).selectAll(\"path,g\").remove();return}f.pointNumber=f.i,f.curveNumber=l.index;var d=s.cx,v=s.cy,_=N2.select(this),b=_.selectAll(\"path.surface\").data([f]);b.enter().append(\"path\").classed(\"surface\",!0).style({\"pointer-events\":n?\"none\":\"all\"}),_.call(GPt,t,a);var p=\"M\"+(d+f.TR[0])+\",\"+(v+f.TR[1])+vX(f.TR,f.BR)+vX(f.BR,f.BL)+vX(f.BL,f.TL)+\"Z\";b.attr(\"d\",p),ZPt(t,f,s);var k=VPt.castOption(l.textposition,f.pts),E=_.selectAll(\"g.slicetext\").data(f.text&&k!==\"none\"?[0]:[]);E.enter().append(\"g\").classed(\"slicetext\",!0),E.exit().remove(),E.each(function(){var S=K_.ensureSingle(N2.select(this),\"text\",\"\",function(z){z.attr(\"data-notex\",1)}),L=K_.ensureUniformFontSize(t,HPt(l,f,i.font));S.text(f.text).attr({class:\"slicetext\",transform:\"\",\"text-anchor\":\"middle\"}).call(dX.font,L).call(oPe.convertToTspans,t);var x=dX.bBox(S.node()),C,M,g,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,g=Math.min(f.TR[0],f.BR[0])+d,C=BPt(M,g,P,T,x,{isHorizontal:!0,constrained:!0,angle:0,anchor:\"middle\"}),C.fontSize=L.size,NPt(l.type,C,i),a[h].transform=C,K_.setTransormAndDisplay(S,C)})});var c=N2.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(N2.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(dX.font,l.title.font).call(oPe.convertToTspans,t);var d=XPt(s,i._size);f.attr(\"transform\",aPe(d.x,d.y)+OPt(Math.min(1,d.scale))+aPe(d.tx,d.ty))})})})};function vX(e,t){var r=t[0]-e[0],n=t[1]-e[1];return\"l\"+r+\",\"+n}function YPt(e,t){return[.5*(e[0]+t[0]),.5*(e[1]+t[1])]}function KPt(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 O=Math.sqrt(u);return{x:O,y:-O}}function f(){var O=c();return[O.x,O.y]}var h,d=[];d.push(f());var v,_;for(v=e.length-1;v>-1;v--)if(_=e[v],!_.hidden){var b=_.v/l;u+=b,d.push(f())}var p=1/0,k=-1/0;for(v=0;v-1;v--)if(_=e[v],!_.hidden){P+=1;var T=d[P][0],z=d[P][1];_.TL=[-T,z],_.TR=[T,z],_.BL=M,_.BR=g,_.pxmid=YPt(_.TR,_.BR),M=_.TL,g=_.TR}}});var hPe=ye((q0r,fPe)=>{\"use strict\";var cPe=Oa(),JPt=q3(),$Pt=bv().resizeText;fPe.exports=function(t){var r=t._fullLayout._funnelarealayer.selectAll(\".trace\");$Pt(t,r,\"funnelarea\"),r.each(function(n){var i=n[0],a=i.trace,o=cPe.select(this);o.style({opacity:a.opacity}),o.selectAll(\"path.surface\").each(function(s){cPe.select(this).call(JPt,s,a,t)})})}});var vPe=ye((B0r,dPe)=>{\"use strict\";dPe.exports={moduleType:\"trace\",name:\"funnelarea\",basePlotModule:ZLe(),categories:[\"pie-like\",\"funnelarea\",\"showLegend\"],attributes:cX(),layoutAttributes:fX(),supplyDefaults:ePe(),supplyLayoutDefaults:rPe(),calc:hX().calc,crossTraceCalc:hX().crossTraceCalc,plot:uPe(),style:hPe(),styleOne:q3(),meta:{}}});var gPe=ye((N0r,pPe)=>{\"use strict\";pPe.exports=vPe()});var Od=ye((U0r,mPe)=>{(function(){var e={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()}},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),_=Math.cos(u);return o[0]=c+d*v+h*_,o[1]=s[1],o[2]=f+d*_-h*v,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}},216:function(i){\"use strict\";i.exports=a;function a(o,s){for(var l={},u=0;u1){v[0]in h||(h[v[0]]=[]),h=h[v[0]];for(var _=1;_=0;--N){var Se=Z[N];j=Se[0];var Le=V[j],Ae=Le[0],Fe=Le[1],Pe=O[Ae],ge=O[Fe];if((Pe[0]-ge[0]||Pe[1]-ge[1])<0){var Re=Ae;Ae=Fe,Fe=Re}Le[0]=Ae;var ce=Le[1]=Se[1],Ze;for(H&&(Ze=Le[2]);N>0&&Z[N-1][0]===j;){var Se=Z[--N],ut=Se[1];H?V.push([ce,ut,Ze]):V.push([ce,ut]),ce=ut}H?V.push([ce,Fe,Ze]):V.push([ce,Fe])}return re}function x(O,V,G){for(var Z=V.length,H=new s(Z),N=[],j=0;jV[2]?1:0)}function g(O,V,G){if(O.length!==0){if(V)for(var Z=0;Z0||j.length>0}function z(O,V,G){var Z;if(G){Z=V;for(var H=new Array(V.length),N=0;N " ] }, - "metadata": {}, - "output_type": "display_data", "jetTransient": { "display_id": null - } + }, + "metadata": {}, + "output_type": "display_data" } ], - "execution_count": 7 + "source": [ + "fs_full.statistics.plot.balance('Heat').figure.update_layout(title='Heat Balance (Full)')" + ] }, { "cell_type": "code", + "execution_count": 8, "id": "14", "metadata": { "ExecuteTime": { @@ -4536,9 +4302,6 @@ "start_time": "2025-12-13T19:03:29.772272Z" } }, - "source": [ - "fs_rolling.statistics.plot.balance('Heat').figure.update_layout(title='Heat Balance (Rolling)')" - ], "outputs": [ { "data": { @@ -4570,14 +4333,16 @@ " }) }; " ] }, - "metadata": {}, - "output_type": "display_data", "jetTransient": { "display_id": null - } + }, + "metadata": {}, + "output_type": "display_data" } ], - "execution_count": 8 + "source": [ + "fs_rolling.statistics.plot.balance('Heat').figure.update_layout(title='Heat Balance (Rolling)')" + ] }, { "cell_type": "markdown", @@ -4591,6 +4356,7 @@ }, { "cell_type": "code", + "execution_count": 9, "id": "16", "metadata": { "ExecuteTime": { @@ -4598,24 +4364,6 @@ "start_time": "2025-12-13T19:03:30.141045Z" } }, - "source": [ - "fig = make_subplots(\n", - " rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.1, subplot_titles=['Full Optimization', 'Rolling Horizon']\n", - ")\n", - "\n", - "# Full optimization\n", - "charge_full = fs_full.solution['Storage|charge_state'].values[:-1] # Drop final value\n", - "fig.add_trace(go.Scatter(x=timesteps, y=charge_full, name='Full', line=dict(color='blue')), row=1, col=1)\n", - "\n", - "# Rolling horizon\n", - "charge_rolling = fs_rolling.solution['Storage|charge_state'].values[:-1]\n", - "fig.add_trace(go.Scatter(x=timesteps, y=charge_rolling, name='Rolling', line=dict(color='orange')), row=2, col=1)\n", - "\n", - "fig.update_yaxes(title_text='Charge State [MWh]', row=1, col=1)\n", - "fig.update_yaxes(title_text='Charge State [MWh]', row=2, col=1)\n", - "fig.update_layout(height=400, showlegend=False)\n", - "fig.show()" - ], "outputs": [ { "data": { @@ -4647,14 +4395,31 @@ " }) }; " ] }, - "metadata": {}, - "output_type": "display_data", "jetTransient": { "display_id": null - } + }, + "metadata": {}, + "output_type": "display_data" } ], - "execution_count": 9 + "source": [ + "fig = make_subplots(\n", + " rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.1, subplot_titles=['Full Optimization', 'Rolling Horizon']\n", + ")\n", + "\n", + "# Full optimization\n", + "charge_full = fs_full.solution['Storage|charge_state'].values[:-1] # Drop final value\n", + "fig.add_trace(go.Scatter(x=timesteps, y=charge_full, name='Full', line=dict(color='blue')), row=1, col=1)\n", + "\n", + "# Rolling horizon\n", + "charge_rolling = fs_rolling.solution['Storage|charge_state'].values[:-1]\n", + "fig.add_trace(go.Scatter(x=timesteps, y=charge_rolling, name='Rolling', line=dict(color='orange')), row=2, col=1)\n", + "\n", + "fig.update_yaxes(title_text='Charge State [MWh]', row=1, col=1)\n", + "fig.update_yaxes(title_text='Charge State [MWh]', row=2, col=1)\n", + "fig.update_layout(height=400, showlegend=False)\n", + "fig.show()" + ] }, { "cell_type": "markdown", @@ -4668,6 +4433,7 @@ }, { "cell_type": "code", + "execution_count": null, "id": "18", "metadata": { "ExecuteTime": { @@ -4675,35 +4441,14 @@ "start_time": "2025-12-13T19:03:30.228470Z" } }, + "outputs": [], "source": [ - "print(f'Number of segments: {len(segments)}')\n", - "print()\n", + "print(f'{len(segments)} segments:')\n", "for i, seg in enumerate(segments):\n", - " start_time = seg.timesteps[0]\n", - " end_time = seg.timesteps[-1]\n", - " cost = seg.solution['costs'].item()\n", " print(\n", - " f'Segment {i + 1}: {start_time.strftime(\"%Y-%m-%d %H:%M\")} → {end_time.strftime(\"%Y-%m-%d %H:%M\")} | Cost: {cost:,.0f} €'\n", + " f' {i + 1}: {seg.timesteps[0]:%m-%d %H:%M} → {seg.timesteps[-1]:%m-%d %H:%M} | {seg.solution[\"costs\"].item():,.0f} €'\n", " )" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Number of segments: 7\n", - "\n", - "Segment 1: 2020-01-01 00:00 → 2020-01-03 23:45 | Cost: 318,658 €\n", - "Segment 2: 2020-01-03 00:00 → 2020-01-05 23:45 | Cost: 275,399 €\n", - "Segment 3: 2020-01-05 00:00 → 2020-01-07 23:45 | Cost: 335,051 €\n", - "Segment 4: 2020-01-07 00:00 → 2020-01-09 23:45 | Cost: 406,345 €\n", - "Segment 5: 2020-01-09 00:00 → 2020-01-11 23:45 | Cost: 356,730 €\n", - "Segment 6: 2020-01-11 00:00 → 2020-01-13 23:45 | Cost: 275,606 €\n", - "Segment 7: 2020-01-13 00:00 → 2020-01-14 23:45 | Cost: 270,066 €\n" - ] - } - ], - "execution_count": 10 + ] }, { "cell_type": "markdown", @@ -4713,6 +4458,7 @@ }, { "cell_type": "code", + "execution_count": 11, "id": "20", "metadata": { "ExecuteTime": { @@ -4720,16 +4466,6 @@ "start_time": "2025-12-13T19:03:30.272546Z" } }, - "source": [ - "# Concatenate all segment solutions into one dataset (including overlaps)\n", - "ds = xr.concat([seg.solution for seg in segments], dim=pd.RangeIndex(len(segments), name='segment'), join='outer')\n", - "\n", - "# Plot CHP thermal flow across all segments - each segment as a separate line\n", - "px.line(\n", - " ds['Boiler(Q_th)|flow_rate'].to_pandas().T,\n", - " labels={'value': 'Boiler Thermal Output [MW]', 'index': 'Timestep'},\n", - ")" - ], "outputs": [ { "data": { @@ -4761,30 +4497,34 @@ " }) }; " ] }, - "metadata": {}, - "output_type": "display_data", "jetTransient": { "display_id": null - } + }, + "metadata": {}, + "output_type": "display_data" } ], - "execution_count": 11 + "source": [ + "# Concatenate all segment solutions into one dataset (including overlaps)\n", + "ds = xr.concat([seg.solution for seg in segments], dim=pd.RangeIndex(len(segments), name='segment'), join='outer')\n", + "\n", + "# Plot CHP thermal flow across all segments - each segment as a separate line\n", + "px.line(\n", + " ds['Boiler(Q_th)|flow_rate'].to_pandas().T,\n", + " labels={'value': 'Boiler Thermal Output [MW]', 'index': 'Timestep'},\n", + ")" + ] }, { + "cell_type": "code", + "execution_count": 12, + "id": "d7c660381f2190e0", "metadata": { "ExecuteTime": { "end_time": "2025-12-13T19:03:30.963250Z", "start_time": "2025-12-13T19:03:30.651056Z" } }, - "cell_type": "code", - "source": [ - "px.line(\n", - " ds['Storage|charge_state'].to_pandas().T,\n", - " labels={'value': 'Storage Charge State [MW]', 'index': 'Timestep'},\n", - ")" - ], - "id": "d7c660381f2190e0", "outputs": [ { "data": { @@ -4816,14 +4556,19 @@ " }) }; " ] }, - "metadata": {}, - "output_type": "display_data", "jetTransient": { "display_id": null - } + }, + "metadata": {}, + "output_type": "display_data" } ], - "execution_count": 12 + "source": [ + "px.line(\n", + " ds['Storage|charge_state'].to_pandas().T,\n", + " labels={'value': 'Storage Charge State [MW]', 'index': 'Timestep'},\n", + ")" + ] }, { "cell_type": "markdown", diff --git a/docs/notebooks/09-plotting-and-data-access.ipynb b/docs/notebooks/09-plotting-and-data-access.ipynb index 091d5f1d4..36118d1d3 100644 --- a/docs/notebooks/09-plotting-and-data-access.ipynb +++ b/docs/notebooks/09-plotting-and-data-access.ipynb @@ -63,37 +63,9 @@ "start_time": "2025-12-13T14:13:06.637107Z" } }, - "source": [ - "# Run the generation script (only needed once, or to regenerate)\n", - "!python data/generate_example_systems.py" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Creating simple_system...\r\n", - " Optimizing...\r\n", - " Saving to /Users/felix/PycharmProjects/flixopt_719231/docs/notebooks/data/simple_system.nc4...\r\n", - " Done. Objective: 558.83\r\n", - "\r\n", - "Creating complex_system...\r\n", - " Optimizing...\r\n", - "HighsMipSolverData::transformNewIntegerFeasibleSolution tmpSolver.run();\r\n", - "HighsMipSolverData::transformNewIntegerFeasibleSolution tmpSolver.run();\r\n", - " Saving to /Users/felix/PycharmProjects/flixopt_719231/docs/notebooks/data/complex_system.nc4...\r\n", - " Done. Objective: 302.36\r\n", - "\r\n", - "Creating multiperiod_system...\r\n", - " Optimizing...\r\n", - " Saving to /Users/felix/PycharmProjects/flixopt_719231/docs/notebooks/data/multiperiod_system.nc4...\r\n", - " Done. Objective: 19472.48\r\n", - "\r\n", - "All systems generated successfully!\r\n" - ] - } - ], - "execution_count": 2 + "source": "# Run the generation script (only needed once, or to regenerate)\n!python data/generate_example_systems.py > /dev/null 2>&1", + "outputs": [], + "execution_count": null }, { "cell_type": "markdown", diff --git a/docs/notebooks/10-transmission.ipynb b/docs/notebooks/10-transmission.ipynb index 8c74e4e8c..bdfc5b956 100644 --- a/docs/notebooks/10-transmission.ipynb +++ b/docs/notebooks/10-transmission.ipynb @@ -62,7 +62,7 @@ "|-----------|-------|-------------|\n", "| Relative losses | 5% | Heat loss proportional to flow (pipe heat loss) |\n", "| Capacity | 200 kW | Maximum transmission rate |\n", - "| Bidirectional | Yes | Heat can flow A→B or B→A |" + "| Bidirectional | Yes | Heat can flow A\u2192B or B\u2192A |" ] }, { @@ -135,7 +135,7 @@ "id": "8", "metadata": {}, "outputs": [], - "source": "fs_unidirectional = fx.FlowSystem(timesteps)\nfs_unidirectional.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_unidirectional.add_elements(\n # === Buses (one per site) ===\n fx.Bus('Heat_A', carrier='heat'), # Site A heat network\n fx.Bus('Heat_B', carrier='heat'), # Site B heat network\n fx.Bus('Gas', carrier='gas'), # Gas supply network\n fx.Bus('Electricity', carrier='electricity'), # Electricity grid\n # === Effect ===\n fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.25)]),\n # === Site A: Large gas boiler (cheap) ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}], # 92% efficiency\n ),\n # === Site B: Small electric boiler (expensive but flexible) ===\n fx.LinearConverter(\n 'ElecBoiler_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=250)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=250)],\n conversion_factors=[{'Elec': 1, 'Heat': 0.99}], # 99% efficiency\n ),\n # === Transmission: A → B (unidirectional) ===\n fx.Transmission(\n 'Pipe_A_to_B',\n in1=fx.Flow('from_A', bus='Heat_A', size=200), # Input from Site A\n out1=fx.Flow('to_B', bus='Heat_B', size=200), # Output to Site B\n relative_losses=0.05, # 5% heat loss in pipe\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_unidirectional.optimize(fx.solvers.HighsSolver())" + "source": "fs_unidirectional = fx.FlowSystem(timesteps)\nfs_unidirectional.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_unidirectional.add_elements(\n # === Buses (one per site) ===\n fx.Bus('Heat_A', carrier='heat'), # Site A heat network\n fx.Bus('Heat_B', carrier='heat'), # Site B heat network\n fx.Bus('Gas', carrier='gas'), # Gas supply network\n fx.Bus('Electricity', carrier='electricity'), # Electricity grid\n # === Effect ===\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.25)]),\n # === Site A: Large gas boiler (cheap) ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}], # 92% efficiency\n ),\n # === Site B: Small electric boiler (expensive but flexible) ===\n fx.LinearConverter(\n 'ElecBoiler_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=250)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=250)],\n conversion_factors=[{'Elec': 1, 'Heat': 0.99}], # 99% efficiency\n ),\n # === Transmission: A \u2192 B (unidirectional) ===\n fx.Transmission(\n 'Pipe_A_to_B',\n in1=fx.Flow('from_A', bus='Heat_A', size=200), # Input from Site A\n out1=fx.Flow('to_B', bus='Heat_B', size=200), # Output to Site B\n relative_losses=0.05, # 5% heat loss in pipe\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_unidirectional.optimize(fx.solvers.HighsSolver());" }, { "cell_type": "code", @@ -145,7 +145,7 @@ "outputs": [], "source": [ "# View results\n", - "print(f'Total cost: {fs_unidirectional.solution[\"costs\"].item():.2f} €')" + "print(f'Total cost: {fs_unidirectional.solution[\"costs\"].item():.2f} \u20ac')" ] }, { @@ -217,8 +217,8 @@ "# Electricity price varies: cheap at night, expensive during day\n", "elec_price = np.where(\n", " (hour_of_day >= 22) | (hour_of_day <= 6),\n", - " 0.08, # Night: 0.08 €/kWh\n", - " 0.25, # Day: 0.25 €/kWh\n", + " 0.08, # Night: 0.08 \u20ac/kWh\n", + " 0.25, # Day: 0.25 \u20ac/kWh\n", ")" ] }, @@ -228,7 +228,7 @@ "id": "16", "metadata": {}, "outputs": [], - "source": "fs_bidirectional = fx.FlowSystem(timesteps)\nfs_bidirectional.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_bidirectional.add_elements(\n # === Buses ===\n fx.Bus('Heat_A', carrier='heat'),\n fx.Bus('Heat_B', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n fx.Bus('Electricity', carrier='electricity'),\n # === Effect ===\n fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n # === Site A: Gas boiler ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n ),\n # === Site B: Heat pump (efficient with variable electricity price) ===\n fx.LinearConverter(\n 'HeatPump_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n conversion_factors=[{'Elec': 1, 'Heat': 3.5}], # COP = 3.5\n ),\n # === BIDIRECTIONAL Transmission ===\n fx.Transmission(\n 'Pipe_AB',\n # Direction 1: A → B\n in1=fx.Flow('from_A', bus='Heat_A', size=200),\n out1=fx.Flow('to_B', bus='Heat_B', size=200),\n # Direction 2: B → A\n in2=fx.Flow('from_B', bus='Heat_B', size=200),\n out2=fx.Flow('to_A', bus='Heat_A', size=200),\n relative_losses=0.05,\n prevent_simultaneous_flows_in_both_directions=True, # Can't flow both ways at once\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_bidirectional.optimize(fx.solvers.HighsSolver())" + "source": "fs_bidirectional = fx.FlowSystem(timesteps)\nfs_bidirectional.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_bidirectional.add_elements(\n # === Buses ===\n fx.Bus('Heat_A', carrier='heat'),\n fx.Bus('Heat_B', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n fx.Bus('Electricity', carrier='electricity'),\n # === Effect ===\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n # === Site A: Gas boiler ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n ),\n # === Site B: Heat pump (efficient with variable electricity price) ===\n fx.LinearConverter(\n 'HeatPump_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n conversion_factors=[{'Elec': 1, 'Heat': 3.5}], # COP = 3.5\n ),\n # === BIDIRECTIONAL Transmission ===\n fx.Transmission(\n 'Pipe_AB',\n # Direction 1: A \u2192 B\n in1=fx.Flow('from_A', bus='Heat_A', size=200),\n out1=fx.Flow('to_B', bus='Heat_B', size=200),\n # Direction 2: B \u2192 A\n in2=fx.Flow('from_B', bus='Heat_B', size=200),\n out2=fx.Flow('to_A', bus='Heat_A', size=200),\n relative_losses=0.05,\n prevent_simultaneous_flows_in_both_directions=True, # Can't flow both ways at once\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_bidirectional.optimize(fx.solvers.HighsSolver());" }, { "cell_type": "code", @@ -238,10 +238,10 @@ "outputs": [], "source": [ "# Compare costs\n", - "print(f'Unidirectional cost: {fs_unidirectional.solution[\"costs\"].item():.2f} €')\n", - "print(f'Bidirectional cost: {fs_bidirectional.solution[\"costs\"].item():.2f} €')\n", + "print(f'Unidirectional cost: {fs_unidirectional.solution[\"costs\"].item():.2f} \u20ac')\n", + "print(f'Bidirectional cost: {fs_bidirectional.solution[\"costs\"].item():.2f} \u20ac')\n", "savings = fs_unidirectional.solution['costs'].item() - fs_bidirectional.solution['costs'].item()\n", - "print(f'Savings from bidirectional: {savings:.2f} €')" + "print(f'Savings from bidirectional: {savings:.2f} \u20ac')" ] }, { @@ -262,7 +262,7 @@ "fig = px.line(\n", " x=list(flow_data['time'].values) * 2,\n", " y=np.concatenate([flow_data['A_to_B'].values, flow_data['B_to_A'].values]),\n", - " color=['A → B'] * len(flow_data['time']) + ['B → A'] * len(flow_data['time']),\n", + " color=['A \u2192 B'] * len(flow_data['time']) + ['B \u2192 A'] * len(flow_data['time']),\n", " title='Transmission Flow Direction Over Time',\n", " labels={'x': 'Time', 'y': 'Flow Rate [kW]', 'color': 'Direction'},\n", ")\n", @@ -319,7 +319,7 @@ "id": "23", "metadata": {}, "outputs": [], - "source": "# Daily amortized pipe cost (simplified)\nPIPE_COST_PER_KW = 0.05 # €/kW/day capacity cost\n\nfs_invest = fx.FlowSystem(timesteps)\nfs_invest.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_invest.add_elements(\n # === Buses ===\n fx.Bus('Heat_A', carrier='heat'),\n fx.Bus('Heat_B', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n fx.Bus('Electricity', carrier='electricity'),\n # === Effect ===\n fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n # === Site A: Gas boiler ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n ),\n # === Site B: Heat pump ===\n fx.LinearConverter(\n 'HeatPump_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n conversion_factors=[{'Elec': 1, 'Heat': 3.5}],\n ),\n # === Site B: Backup electric boiler ===\n fx.LinearConverter(\n 'ElecBoiler_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=200)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=200)],\n conversion_factors=[{'Elec': 1, 'Heat': 0.99}],\n ),\n # === Transmission with INVESTMENT OPTIMIZATION ===\n # Investment parameters are passed via 'size' parameter\n fx.Transmission(\n 'Pipe_AB',\n in1=fx.Flow(\n 'from_A',\n bus='Heat_A',\n size=fx.InvestParameters(\n effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7}, # Weekly cost\n minimum_size=0,\n maximum_size=300,\n ),\n ),\n out1=fx.Flow('to_B', bus='Heat_B'),\n in2=fx.Flow(\n 'from_B',\n bus='Heat_B',\n size=fx.InvestParameters(\n effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7},\n minimum_size=0,\n maximum_size=300,\n ),\n ),\n out2=fx.Flow('to_A', bus='Heat_A'),\n relative_losses=0.05,\n balanced=True, # Same capacity in both directions\n prevent_simultaneous_flows_in_both_directions=True,\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_invest.optimize(fx.solvers.HighsSolver())" + "source": "# Daily amortized pipe cost (simplified)\nPIPE_COST_PER_KW = 0.05 # \u20ac/kW/day capacity cost\n\nfs_invest = fx.FlowSystem(timesteps)\nfs_invest.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_invest.add_elements(\n # === Buses ===\n fx.Bus('Heat_A', carrier='heat'),\n fx.Bus('Heat_B', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n fx.Bus('Electricity', carrier='electricity'),\n # === Effect ===\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n # === Site A: Gas boiler ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n ),\n # === Site B: Heat pump ===\n fx.LinearConverter(\n 'HeatPump_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n conversion_factors=[{'Elec': 1, 'Heat': 3.5}],\n ),\n # === Site B: Backup electric boiler ===\n fx.LinearConverter(\n 'ElecBoiler_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=200)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=200)],\n conversion_factors=[{'Elec': 1, 'Heat': 0.99}],\n ),\n # === Transmission with INVESTMENT OPTIMIZATION ===\n # Investment parameters are passed via 'size' parameter\n fx.Transmission(\n 'Pipe_AB',\n in1=fx.Flow(\n 'from_A',\n bus='Heat_A',\n size=fx.InvestParameters(\n effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7}, # Weekly cost\n minimum_size=0,\n maximum_size=300,\n ),\n ),\n out1=fx.Flow('to_B', bus='Heat_B'),\n in2=fx.Flow(\n 'from_B',\n bus='Heat_B',\n size=fx.InvestParameters(\n effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7},\n minimum_size=0,\n maximum_size=300,\n ),\n ),\n out2=fx.Flow('to_A', bus='Heat_A'),\n relative_losses=0.05,\n balanced=True, # Same capacity in both directions\n prevent_simultaneous_flows_in_both_directions=True,\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_invest.optimize(fx.solvers.HighsSolver());" }, { "cell_type": "code", @@ -333,7 +333,7 @@ "total_cost = fs_invest.solution['costs'].item()\n", "\n", "print(f'Optimal pipe capacity: {optimal_capacity:.1f} kW')\n", - "print(f'Total cost: {total_cost:.2f} €')" + "print(f'Total cost: {total_cost:.2f} \u20ac')" ] }, { @@ -362,7 +362,7 @@ "cell_type": "markdown", "id": "27", "metadata": {}, - "source": "## Key Concepts\n\n### Transmission Component Structure\n\n```python\nfx.Transmission(\n label='pipe_name',\n # Direction 1: A → B\n in1=fx.Flow('from_A', bus='Bus_A', size=100),\n out1=fx.Flow('to_B', bus='Bus_B', size=100),\n # Direction 2: B → A (optional - omit for unidirectional)\n in2=fx.Flow('from_B', bus='Bus_B', size=100),\n out2=fx.Flow('to_A', bus='Bus_A', size=100),\n # Loss parameters\n relative_losses=0.05, # 5% proportional loss\n absolute_losses=10, # 10 kW fixed loss when active (optional)\n # Operational constraints\n prevent_simultaneous_flows_in_both_directions=True,\n balanced=True, # Same capacity both directions (needs InvestParameters)\n)\n```\n\n### Loss Types\n\n| Loss Type | Formula | Use Case |\n|-----------|---------|----------|\n| **Relative** | `out = in × (1 - loss)` | Heat pipes, electrical lines |\n| **Absolute** | `out = in - loss` (when active) | Pump energy, standby losses |\n\n### Bidirectional vs Unidirectional\n\n| Configuration | Parameters | Use Case |\n|---------------|------------|----------|\n| **Unidirectional** | `in1`, `out1` only | One-way pipelines, conveyors |\n| **Bidirectional** | `in1`, `out1`, `in2`, `out2` | Power lines, reversible pipes |\n\n### Investment Optimization\n\nUse `InvestParameters` as the `size` parameter for capacity optimization:\n\n```python\nin1=fx.Flow(\n 'from_A', \n bus='Bus_A',\n size=fx.InvestParameters( # Pass InvestParameters as size\n effects_of_investment_per_size={'costs': cost_per_kw},\n minimum_size=0,\n maximum_size=500,\n ),\n)\n```" + "source": "## Key Concepts\n\n### Transmission Component Structure\n\n```python\nfx.Transmission(\n label='pipe_name',\n # Direction 1: A \u2192 B\n in1=fx.Flow('from_A', bus='Bus_A', size=100),\n out1=fx.Flow('to_B', bus='Bus_B', size=100),\n # Direction 2: B \u2192 A (optional - omit for unidirectional)\n in2=fx.Flow('from_B', bus='Bus_B', size=100),\n out2=fx.Flow('to_A', bus='Bus_A', size=100),\n # Loss parameters\n relative_losses=0.05, # 5% proportional loss\n absolute_losses=10, # 10 kW fixed loss when active (optional)\n # Operational constraints\n prevent_simultaneous_flows_in_both_directions=True,\n balanced=True, # Same capacity both directions (needs InvestParameters)\n)\n```\n\n### Loss Types\n\n| Loss Type | Formula | Use Case |\n|-----------|---------|----------|\n| **Relative** | `out = in \u00d7 (1 - loss)` | Heat pipes, electrical lines |\n| **Absolute** | `out = in - loss` (when active) | Pump energy, standby losses |\n\n### Bidirectional vs Unidirectional\n\n| Configuration | Parameters | Use Case |\n|---------------|------------|----------|\n| **Unidirectional** | `in1`, `out1` only | One-way pipelines, conveyors |\n| **Bidirectional** | `in1`, `out1`, `in2`, `out2` | Power lines, reversible pipes |\n\n### Investment Optimization\n\nUse `InvestParameters` as the `size` parameter for capacity optimization:\n\n```python\nin1=fx.Flow(\n 'from_A', \n bus='Bus_A',\n size=fx.InvestParameters( # Pass InvestParameters as size\n effects_of_investment_per_size={'costs': cost_per_kw},\n minimum_size=0,\n maximum_size=500,\n ),\n)\n```" }, { "cell_type": "markdown", From 6448ae9452e351b5ea8057b3e72c39954008e749 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 18 Dec 2025 09:00:28 +0100 Subject: [PATCH 3/7] Improve notebooks in docs --- docs/notebooks/07-scenarios-and-periods.ipynb | 11253 +++++++++++++++- 1 file changed, 11205 insertions(+), 48 deletions(-) diff --git a/docs/notebooks/07-scenarios-and-periods.ipynb b/docs/notebooks/07-scenarios-and-periods.ipynb index 044eae21b..035278cc0 100644 --- a/docs/notebooks/07-scenarios-and-periods.ipynb +++ b/docs/notebooks/07-scenarios-and-periods.ipynb @@ -4,7 +4,18 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": "# Scenarios\n\nMulti-year planning with uncertain demand scenarios.\n\nThis notebook introduces:\n\n- **Periods**: Multiple planning years with different conditions\n- **Scenarios**: Uncertain futures (mild vs. harsh winter)\n- **Scenario weights**: Probability-weighted optimization\n- **Multi-dimensional data**: Parameters that vary by time, period, and scenario" + "source": [ + "# Scenarios\n", + "\n", + "Multi-year planning with uncertain demand scenarios.\n", + "\n", + "This notebook introduces:\n", + "\n", + "- **Periods**: Multiple planning years with different conditions\n", + "- **Scenarios**: Uncertain futures (mild vs. harsh winter)\n", + "- **Scenario weights**: Probability-weighted optimization\n", + "- **Multi-dimensional data**: Parameters that vary by time, period, and scenario" + ] }, { "cell_type": "markdown", @@ -16,10 +27,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "2", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:23.754893Z", + "iopub.status.busy": "2025-12-18T08:00:23.754819Z", + "iopub.status.idle": "2025-12-18T08:00:25.451512Z", + "shell.execute_reply": "2025-12-18T08:00:25.451273Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "flixopt.config.CONFIG" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import numpy as np\n", "import pandas as pd\n", @@ -56,10 +85,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "5", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:25.452759Z", + "iopub.status.busy": "2025-12-18T08:00:25.452672Z", + "iopub.status.idle": "2025-12-18T08:00:25.455344Z", + "shell.execute_reply": "2025-12-18T08:00:25.455121Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time dimension: 168 hours\n", + "Periods: [2024, 2025, 2026]\n", + "Scenarios: ['Mild Winter', 'Harsh Winter']\n", + "Scenario weights: {'Mild Winter': np.float64(0.6), 'Harsh Winter': np.float64(0.4)}\n" + ] + } + ], "source": [ "# Time horizon: one representative winter week\n", "timesteps = pd.date_range('2024-01-15', periods=168, freq='h') # 7 days\n", @@ -89,10 +136,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "7", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:25.456427Z", + "iopub.status.busy": "2025-12-18T08:00:25.456354Z", + "iopub.status.idle": "2025-12-18T08:00:25.459330Z", + "shell.execute_reply": "2025-12-18T08:00:25.459130Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mild winter demand: 60 - 163 kW\n", + "Harsh winter demand: 100 - 262 kW\n" + ] + } + ], "source": [ "hours = np.arange(168)\n", "hour_of_day = hours % 24\n", @@ -135,10 +198,3946 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "8", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:25.460244Z", + "iopub.status.busy": "2025-12-18T08:00:25.460176Z", + "iopub.status.idle": "2025-12-18T08:00:25.511948Z", + "shell.execute_reply": "2025-12-18T08:00:25.511726Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Visualize demand scenarios with plotly\n", "fig = px.line(\n", @@ -162,10 +4161,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "10", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:25.526607Z", + "iopub.status.busy": "2025-12-18T08:00:25.526251Z", + "iopub.status.idle": "2025-12-18T08:00:25.529194Z", + "shell.execute_reply": "2025-12-18T08:00:25.528772Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Gas prices by period:\n", + " 2024: 0.06 €/kWh\n", + " 2025: 0.08 €/kWh\n", + " 2026: 0.10 €/kWh\n", + "\n", + "Electricity sell prices by period:\n", + " 2024: 0.28 €/kWh\n", + " 2025: 0.34 €/kWh\n", + " 2026: 0.43 €/kWh\n" + ] + } + ], "source": [ "# Gas prices by period (€/kWh) - expected to rise\n", "gas_prices = np.array([0.06, 0.08, 0.10]) # 2024, 2025, 2026\n", @@ -194,10 +4216,32 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "12", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:25.530870Z", + "iopub.status.busy": "2025-12-18T08:00:25.530777Z", + "iopub.status.idle": "2025-12-18T08:00:25.535843Z", + "shell.execute_reply": "2025-12-18T08:00:25.535622Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "FlowSystem\n", + "==========\n", + "Timesteps: 168 (Hour) [2024-01-15 to 2024-01-21]\n", + "Periods: 3 (2024, 2025, 2026)\n", + "Scenarios: 2 (Mild Winter, Harsh Winter)\n", + "Status: ⚠\n", + "\n", + "\n" + ] + } + ], "source": [ "flow_system = fx.FlowSystem(\n", " timesteps=timesteps,\n", @@ -224,9 +4268,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "14", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:25.536926Z", + "iopub.status.busy": "2025-12-18T08:00:25.536862Z", + "iopub.status.idle": "2025-12-18T08:00:25.539776Z", + "shell.execute_reply": "2025-12-18T08:00:25.539613Z" + } + }, "outputs": [], "source": [ "flow_system.add_elements(\n", @@ -260,9 +4311,8 @@ " size=fx.InvestParameters(\n", " minimum_size=0,\n", " maximum_size=100,\n", - " effects_of_investment_per_size={'costs': 50}, # 50 €/kW annualized\n", + " effects_of_investment_per_size={'costs': 15}, # 15 €/kW/week annualized\n", " ),\n", - " relative_minimum=0.3,\n", " ),\n", " thermal_flow=fx.Flow('Q_th', bus='Heat'),\n", " fuel_flow=fx.Flow('Q_fuel', bus='Gas'),\n", @@ -311,9 +4361,16 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "16", - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:25.540675Z", + "iopub.status.busy": "2025-12-18T08:00:25.540614Z", + "iopub.status.idle": "2025-12-18T08:00:26.229428Z", + "shell.execute_reply": "2025-12-18T08:00:26.229092Z" + } + }, "outputs": [], "source": [ "flow_system.optimize(fx.solvers.HighsSolver(mip_gap=0.01));" @@ -331,10 +4388,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "18", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:26.230646Z", + "iopub.status.busy": "2025-12-18T08:00:26.230569Z", + "iopub.status.idle": "2025-12-18T08:00:26.232971Z", + "shell.execute_reply": "2025-12-18T08:00:26.232795Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimal CHP: 100 kW electrical (142 kW thermal)\n", + "Expected cost: 78 €\n" + ] + } + ], "source": [ "chp_size = flow_system.statistics.sizes['CHP(P_el)']\n", "total_cost = flow_system.solution['costs']\n", @@ -355,10 +4428,1859 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "20", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:26.233949Z", + "iopub.status.busy": "2025-12-18T08:00:26.233890Z", + "iopub.status.idle": "2025-12-18T08:00:26.324788Z", + "shell.execute_reply": "2025-12-18T08:00:26.324557Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "PlotResult(data= Size: 26kB\n", + "Dimensions: (time: 169, period: 3, scenario: 2)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-01-22\n", + " * period (period) int64 24B 2024 2025 2026\n", + " * scenario (scenario) object 16B 'Mild Winter' 'Harsh Winter'\n", + "Data variables:\n", + " CHP(Q_th) (time, period, scenario) float64 8kB -84.97 -131.7 ... nan\n", + " Boiler(Q_th) (time, period, scenario) float64 8kB -0.0 -5.787 ... nan\n", + " HeatDemand(Q_th) (time, scenario, period) float64 8kB 84.97 84.97 ... nan, figure=Figure({\n", + " 'data': [{'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('5ZuWpeU9VcDmqeLGgqdTwGDXQkqFnl' ... 'xWHg5WwNdz8Y/yvVjAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('5ZuWpeU9VcDmqeLGgqdTwGDXQkqFnl' ... 'xWHg5WwNdz8Y/yvVjAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('5ZuWpeU9VcDmqeLGgqdTwGDXQkqFnl' ... 'xWHg5WwNdz8Y/yvVjAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('7Hv2Kj51YMDZ/lMqRPtfwOx79io+dW' ... 'YqPnVgwOx79io+dWDAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('7PQwPGwuYcDZ/lMqRPtfwFu3ymX3NW' ... 'pl9zVhwFu3ymX3NWHAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('7PQwPGwuYcDZ/lMqRPtfwIghsvfjdm' ... 'HAlsphwF/aeHljzGHAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('ACBPJ8IlF8AAAAAAAAAAgMBZustcGi' ... 'taiVUlwKjX9Ae+yTrAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgECL2nkkOw' ... 'Ba65MSwDD8UjH0wzTAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgBDk4ZOTEDDAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': False,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'}],\n", + " 'layout': {'annotations': [{'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2024',\n", + " 'x': 0.15666666666666665,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2025',\n", + " 'x': 0.49,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2026',\n", + " 'x': 0.8233333333333333,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'scenario=Harsh Winter',\n", + " 'textangle': 90,\n", + " 'x': 0.98,\n", + " 'xanchor': 'left',\n", + " 'xref': 'paper',\n", + " 'y': 0.2425,\n", + " 'yanchor': 'middle',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'scenario=Mild Winter',\n", + " 'textangle': 90,\n", + " 'x': 0.98,\n", + " 'xanchor': 'left',\n", + " 'xref': 'paper',\n", + " 'y': 0.7575000000000001,\n", + " 'yanchor': 'middle',\n", + " 'yref': 'paper'}],\n", + " 'bargap': 0,\n", + " 'bargroupgap': 0,\n", + " 'barmode': 'relative',\n", + " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", + " 'template': '...',\n", + " 'title': {'text': 'Heat [kW]'},\n", + " 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.3133333333333333], 'title': {'text': 'time'}},\n", + " 'xaxis2': {'anchor': 'y2',\n", + " 'domain': [0.3333333333333333, 0.6466666666666666],\n", + " 'matches': 'x',\n", + " 'title': {'text': 'time'}},\n", + " 'xaxis3': {'anchor': 'y3', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'title': {'text': 'time'}},\n", + " 'xaxis4': {'anchor': 'y4', 'domain': [0.0, 0.3133333333333333], 'matches': 'x', 'showticklabels': False},\n", + " 'xaxis5': {'anchor': 'y5',\n", + " 'domain': [0.3333333333333333, 0.6466666666666666],\n", + " 'matches': 'x',\n", + " 'showticklabels': False},\n", + " 'xaxis6': {'anchor': 'y6', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'showticklabels': False},\n", + " 'yaxis': {'anchor': 'x', 'domain': [0.0, 0.485], 'title': {'text': 'value'}},\n", + " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", + " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", + " 'yaxis4': {'anchor': 'x4', 'domain': [0.515, 1.0], 'matches': 'y', 'title': {'text': 'value'}},\n", + " 'yaxis5': {'anchor': 'x5', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False},\n", + " 'yaxis6': {'anchor': 'x6', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False}}\n", + "}))" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "flow_system.statistics.plot.balance('Heat')" ] @@ -373,10 +6295,326 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "22", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:26.326038Z", + "iopub.status.busy": "2025-12-18T08:00:26.325876Z", + "iopub.status.idle": "2025-12-18T08:00:26.370151Z", + "shell.execute_reply": "2025-12-18T08:00:26.369942Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "PlotResult(data= Size: 10kB\n", + "Dimensions: (timeframe: 8, timestep: 24, period: 3, scenario: 2)\n", + "Coordinates:\n", + " * timeframe (timeframe) object 64B '2024-01-15' '2024-01-16' ... '2024-01-22'\n", + " * timestep (timestep) object 192B '00:00' '01:00' ... '22:00' '23:00'\n", + " * period (period) int64 24B 2024 2025 2026\n", + " * scenario (scenario) object 16B 'Mild Winter' 'Harsh Winter'\n", + "Data variables:\n", + " value (timestep, timeframe, period, scenario) float64 9kB 84.97 ... nan, figure=Figure({\n", + " 'data': [{'coloraxis': 'coloraxis',\n", + " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
CHP(Q_th)|flow_rate: %{z}',\n", + " 'name': '0',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'xaxis': 'x',\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'yaxis': 'y',\n", + " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}},\n", + " {'coloraxis': 'coloraxis',\n", + " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
CHP(Q_th)|flow_rate: %{z}',\n", + " 'name': '1',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'xaxis': 'x2',\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'yaxis': 'y2',\n", + " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}},\n", + " {'coloraxis': 'coloraxis',\n", + " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
CHP(Q_th)|flow_rate: %{z}',\n", + " 'name': '2',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'xaxis': 'x3',\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'yaxis': 'y3',\n", + " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}}],\n", + " 'frames': [{'data': [{'coloraxis': 'coloraxis',\n", + " 'name': '0',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}},\n", + " {'coloraxis': 'coloraxis',\n", + " 'name': '1',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}},\n", + " {'coloraxis': 'coloraxis',\n", + " 'name': '2',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}}],\n", + " 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'CHP(Q_th)|flow_rate'}},\n", + " 'colorscale': [[0.0, '#30123b'],\n", + " [0.07142857142857142,\n", + " '#4145ab'],\n", + " [0.14285714285714285,\n", + " '#4675ed'],\n", + " [0.21428571428571427,\n", + " '#39a2fc'],\n", + " [0.2857142857142857,\n", + " '#1bcfd4'],\n", + " [0.35714285714285715,\n", + " '#24eca6'],\n", + " [0.42857142857142855,\n", + " '#61fc6c'], [0.5,\n", + " '#a4fc3b'],\n", + " [0.5714285714285714,\n", + " '#d1e834'],\n", + " [0.6428571428571429,\n", + " '#f3c63a'],\n", + " [0.7142857142857143,\n", + " '#fe9b2d'],\n", + " [0.7857142857142857,\n", + " '#f36315'],\n", + " [0.8571428571428571,\n", + " '#d93806'],\n", + " [0.9285714285714286,\n", + " '#b11901'], [1.0,\n", + " '#7a0402']]},\n", + " 'margin': {'t': 60},\n", + " 'yaxis': {'autorange': 'reversed'}},\n", + " 'name': 'Mild Winter'},\n", + " {'data': [{'coloraxis': 'coloraxis',\n", + " 'name': '3',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'z': {'bdata': ('7Hv2Kj51YECvNmqAZHVeQOx79io+dW' ... 'v2Kj51YEDse/YqPnVgQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}},\n", + " {'coloraxis': 'coloraxis',\n", + " 'name': '4',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'z': {'bdata': ('7PQwPGwuYUCvNmqAZHVeQOyBv9Dv5G' ... '78zp+YYEBbt8pl9zVhQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}},\n", + " {'coloraxis': 'coloraxis',\n", + " 'name': '5',\n", + " 'type': 'heatmap',\n", + " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", + " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", + " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", + " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", + " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", + " dtype=object),\n", + " 'z': {'bdata': ('7PQwPGwuYUCvNmqAZHVeQOyBv9Dv5G' ... '78zp+YYEBf2nh5Y8xhQAAAAAAAAPh/'),\n", + " 'dtype': 'f8',\n", + " 'shape': '24, 8'}}],\n", + " 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'CHP(Q_th)|flow_rate'}},\n", + " 'colorscale': [[0.0, '#30123b'],\n", + " [0.07142857142857142,\n", + " '#4145ab'],\n", + " [0.14285714285714285,\n", + " '#4675ed'],\n", + " [0.21428571428571427,\n", + " '#39a2fc'],\n", + " [0.2857142857142857,\n", + " '#1bcfd4'],\n", + " [0.35714285714285715,\n", + " '#24eca6'],\n", + " [0.42857142857142855,\n", + " '#61fc6c'], [0.5,\n", + " '#a4fc3b'],\n", + " [0.5714285714285714,\n", + " '#d1e834'],\n", + " [0.6428571428571429,\n", + " '#f3c63a'],\n", + " [0.7142857142857143,\n", + " '#fe9b2d'],\n", + " [0.7857142857142857,\n", + " '#f36315'],\n", + " [0.8571428571428571,\n", + " '#d93806'],\n", + " [0.9285714285714286,\n", + " '#b11901'], [1.0,\n", + " '#7a0402']]},\n", + " 'margin': {'t': 60},\n", + " 'yaxis': {'autorange': 'reversed'}},\n", + " 'name': 'Harsh Winter'}],\n", + " 'layout': {'annotations': [{'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2024',\n", + " 'x': 0.15999999999999998,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2025',\n", + " 'x': 0.49999999999999994,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2026',\n", + " 'x': 0.8399999999999999,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'}],\n", + " 'coloraxis': {'colorbar': {'title': {'text': 'CHP(Q_th)|flow_rate'}},\n", + " 'colorscale': [[0.0, '#30123b'],\n", + " [0.07142857142857142, '#4145ab'],\n", + " [0.14285714285714285, '#4675ed'],\n", + " [0.21428571428571427, '#39a2fc'],\n", + " [0.2857142857142857, '#1bcfd4'],\n", + " [0.35714285714285715, '#24eca6'],\n", + " [0.42857142857142855, '#61fc6c'], [0.5,\n", + " '#a4fc3b'], [0.5714285714285714,\n", + " '#d1e834'], [0.6428571428571429,\n", + " '#f3c63a'], [0.7142857142857143,\n", + " '#fe9b2d'], [0.7857142857142857,\n", + " '#f36315'], [0.8571428571428571,\n", + " '#d93806'], [0.9285714285714286,\n", + " '#b11901'], [1.0, '#7a0402']]},\n", + " 'margin': {'t': 60},\n", + " 'sliders': [{'active': 0,\n", + " 'currentvalue': {'prefix': 'scenario='},\n", + " 'len': 0.9,\n", + " 'pad': {'b': 10, 't': 60},\n", + " 'steps': [{'args': [['Mild Winter'], {'frame':\n", + " {'duration': 0, 'redraw': True},\n", + " 'mode': 'immediate', 'fromcurrent':\n", + " True, 'transition': {'duration': 0,\n", + " 'easing': 'linear'}}],\n", + " 'label': 'Mild Winter',\n", + " 'method': 'animate'},\n", + " {'args': [['Harsh Winter'], {'frame':\n", + " {'duration': 0, 'redraw': True},\n", + " 'mode': 'immediate', 'fromcurrent':\n", + " True, 'transition': {'duration': 0,\n", + " 'easing': 'linear'}}],\n", + " 'label': 'Harsh Winter',\n", + " 'method': 'animate'}],\n", + " 'x': 0.1,\n", + " 'xanchor': 'left',\n", + " 'y': 0,\n", + " 'yanchor': 'top'}],\n", + " 'template': '...',\n", + " 'updatemenus': [{'buttons': [{'args': [None, {'frame': {'duration':\n", + " 500, 'redraw': True}, 'mode':\n", + " 'immediate', 'fromcurrent':\n", + " True, 'transition':\n", + " {'duration': 500, 'easing':\n", + " 'linear'}}],\n", + " 'label': '▶',\n", + " 'method': 'animate'},\n", + " {'args': [[None], {'frame':\n", + " {'duration': 0, 'redraw':\n", + " True}, 'mode': 'immediate',\n", + " 'fromcurrent': True,\n", + " 'transition': {'duration': 0,\n", + " 'easing': 'linear'}}],\n", + " 'label': '◼',\n", + " 'method': 'animate'}],\n", + " 'direction': 'left',\n", + " 'pad': {'r': 10, 't': 70},\n", + " 'showactive': False,\n", + " 'type': 'buttons',\n", + " 'x': 0.1,\n", + " 'xanchor': 'right',\n", + " 'y': 0,\n", + " 'yanchor': 'top'}],\n", + " 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.31999999999999995], 'title': {'text': 'timeframe'}},\n", + " 'xaxis2': {'anchor': 'y2',\n", + " 'domain': [0.33999999999999997, 0.6599999999999999],\n", + " 'matches': 'x',\n", + " 'title': {'text': 'timeframe'}},\n", + " 'xaxis3': {'anchor': 'y3',\n", + " 'domain': [0.6799999999999999, 0.9999999999999999],\n", + " 'matches': 'x',\n", + " 'title': {'text': 'timeframe'}},\n", + " 'yaxis': {'anchor': 'x', 'autorange': 'reversed', 'domain': [0.0, 1.0], 'title': {'text': 'timestep'}},\n", + " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 1.0], 'matches': 'y', 'showticklabels': False},\n", + " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 1.0], 'matches': 'y', 'showticklabels': False}}\n", + "}))" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "flow_system.statistics.plot.heatmap('CHP(Q_th)')" ] @@ -393,10 +6631,4778 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "24", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:26.371123Z", + "iopub.status.busy": "2025-12-18T08:00:26.371062Z", + "iopub.status.idle": "2025-12-18T08:00:26.614487Z", + "shell.execute_reply": "2025-12-18T08:00:26.614258Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Flow rates dimensions: {'period': 3, 'scenario': 2, 'time': 169}\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "PlotResult(data= Size: 66kB\n", + "Dimensions: (period: 3, scenario: 2, time: 169)\n", + "Coordinates:\n", + " * period (period) int64 24B 2024 2025 2026\n", + " * scenario (scenario) object 16B 'Mild Winter' 'Harsh Winter'\n", + " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-01-22\n", + "Data variables:\n", + " GasGrid(Gas) (time, period, scenario) float64 8kB 169.9 269.8 ... nan\n", + " CHP(Q_fuel) (time, period, scenario) float64 8kB 169.9 263.3 ... nan\n", + " CHP(Q_th) (time, period, scenario) float64 8kB 84.97 131.7 ... nan\n", + " CHP(P_el) (time, period, scenario) float64 8kB 59.48 92.16 ... nan\n", + " Boiler(Q_fuel) (time, period, scenario) float64 8kB 0.0 6.43 ... nan nan\n", + " Boiler(Q_th) (time, period, scenario) float64 8kB 0.0 5.787 ... nan nan\n", + " ElecSales(P_el) (time, period, scenario) float64 8kB 59.48 92.16 ... nan\n", + " HeatDemand(Q_th) (time, scenario, period) float64 8kB 84.97 84.97 ... nan, figure=Figure({\n", + " 'data': [{'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'GasGrid(Gas)',\n", + " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'GasGrid(Gas)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'GasGrid(Gas)',\n", + " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'GasGrid(Gas)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'GasGrid(Gas)',\n", + " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'GasGrid(Gas)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'GasGrid(Gas)',\n", + " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'GasGrid(Gas)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('0Gkz3x7ccEDZ/lMqRPtvQJiC0GNhBH' ... 'co4TJxQB+ZLpZ5UXJAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'GasGrid(Gas)',\n", + " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'GasGrid(Gas)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQObVLgwJWn' ... 'XRiIhxQG3sjD4hp3JAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'GasGrid(Gas)',\n", + " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'GasGrid(Gas)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQIghsvfjdn' ... 'HAlspxQBnD9vH76XJAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_fuel)',\n", + " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_fuel)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_fuel)',\n", + " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_fuel)',\n", + " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_fuel)',\n", + " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('7Hv2Kj51cEDZ/lMqRPtvQOx79io+dX' ... 'YqPnVwQOx79io+dXBAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_fuel)',\n", + " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQFu3ymX3NX' ... 'pl9zVxQFu3ymX3NXFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_fuel)',\n", + " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQIghsvfjdn' ... 'HAlspxQF/aeHljzHFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_th)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('7Hv2Kj51YEDZ/lMqRPtfQOx79io+dW' ... 'YqPnVgQOx79io+dWBAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQFu3ymX3NW' ... 'pl9zVhQFu3ymX3NWFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQF/aeHljzGFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(P_el)',\n", + " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(P_el)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(P_el)',\n", + " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(P_el)',\n", + " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(P_el)',\n", + " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('sOAlPIoKV0BkMqEdFmNWQLDgJTyKCl' ... 'U8igpXQLDgJTyKCldAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(P_el)',\n", + " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQLIAT1taGF' ... '9bWhhYQLIAT1taGFhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", + " 'legendgroup': 'CHP(P_el)',\n", + " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'CHP(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQL77kic/c1' ... 'inbOhYQB6YD6rx6lhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_fuel)',\n", + " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_fuel)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_fuel)',\n", + " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_fuel)',\n", + " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_fuel)',\n", + " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('43g7Dy24GUAAAAAAAAAAAIDVQBtn5C' ... 'S6X7QnQCzTgbO2wz1AAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_fuel)',\n", + " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAGNFDzLTCA' ... '7WWqQUQBlRI4ydEjdAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_fuel)',\n", + " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_fuel)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAKCL3oeH2TFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_th)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('ACBPJ8IlF0AAAAAAAAAAAMBZustcGi' ... 'taiVUlQKjX9Ae+yTpAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAECL2nkkOw' ... 'Ba65MSQDD8UjH0wzRAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'Boiler(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAABDk4ZOTEDBAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", + " 'legendgroup': 'ElecSales(P_el)',\n", + " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'ElecSales(P_el)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", + " 'legendgroup': 'ElecSales(P_el)',\n", + " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'ElecSales(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", + " 'legendgroup': 'ElecSales(P_el)',\n", + " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'ElecSales(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", + " 'legendgroup': 'ElecSales(P_el)',\n", + " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'ElecSales(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('sOAlPIoKV0BkMqEdFmNWQLDgJTyKCl' ... 'U8igpXQLDgJTyKCldAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", + " 'legendgroup': 'ElecSales(P_el)',\n", + " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'ElecSales(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQLIAT1taGF' ... '9bWhhYQLIAT1taGFhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", + " 'legendgroup': 'ElecSales(P_el)',\n", + " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'ElecSales(P_el)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQL77kic/c1' ... 'inbOhYQB6YD6rx6lhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'showlegend': True,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x4',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y4'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x5',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y5'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x6',\n", + " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y6'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x2',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y2'},\n", + " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", + " 'marker': {'symbol': 'circle'},\n", + " 'mode': 'lines',\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'showlegend': False,\n", + " 'type': 'scattergl',\n", + " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", + " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", + " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", + " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", + " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", + " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", + " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", + " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", + " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", + " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", + " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", + " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", + " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", + " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", + " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", + " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", + " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", + " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", + " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", + " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", + " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", + " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", + " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", + " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", + " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", + " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", + " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", + " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", + " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", + " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", + " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", + " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", + " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", + " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", + " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", + " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", + " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", + " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", + " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", + " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", + " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", + " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", + " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", + " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", + " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", + " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", + " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", + " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", + " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", + " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", + " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", + " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", + " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", + " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", + " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", + " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", + " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", + " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", + " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", + " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", + " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", + " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", + " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", + " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", + " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", + " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", + " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", + " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", + " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", + " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", + " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", + " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", + " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", + " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", + " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", + " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", + " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", + " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", + " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", + " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", + " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", + " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", + " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", + " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", + " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", + " 'xaxis': 'x3',\n", + " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y3'}],\n", + " 'layout': {'annotations': [{'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2024',\n", + " 'x': 0.15666666666666665,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2025',\n", + " 'x': 0.49,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'period=2026',\n", + " 'x': 0.8233333333333333,\n", + " 'xanchor': 'center',\n", + " 'xref': 'paper',\n", + " 'y': 1.0,\n", + " 'yanchor': 'bottom',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'scenario=Harsh Winter',\n", + " 'textangle': 90,\n", + " 'x': 0.98,\n", + " 'xanchor': 'left',\n", + " 'xref': 'paper',\n", + " 'y': 0.2425,\n", + " 'yanchor': 'middle',\n", + " 'yref': 'paper'},\n", + " {'font': {},\n", + " 'showarrow': False,\n", + " 'text': 'scenario=Mild Winter',\n", + " 'textangle': 90,\n", + " 'x': 0.98,\n", + " 'xanchor': 'left',\n", + " 'xref': 'paper',\n", + " 'y': 0.7575000000000001,\n", + " 'yanchor': 'middle',\n", + " 'yref': 'paper'}],\n", + " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", + " 'template': '...',\n", + " 'title': {'text': 'Flows [kW]'},\n", + " 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.3133333333333333], 'title': {'text': 'time'}},\n", + " 'xaxis2': {'anchor': 'y2',\n", + " 'domain': [0.3333333333333333, 0.6466666666666666],\n", + " 'matches': 'x',\n", + " 'title': {'text': 'time'}},\n", + " 'xaxis3': {'anchor': 'y3', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'title': {'text': 'time'}},\n", + " 'xaxis4': {'anchor': 'y4', 'domain': [0.0, 0.3133333333333333], 'matches': 'x', 'showticklabels': False},\n", + " 'xaxis5': {'anchor': 'y5',\n", + " 'domain': [0.3333333333333333, 0.6466666666666666],\n", + " 'matches': 'x',\n", + " 'showticklabels': False},\n", + " 'xaxis6': {'anchor': 'y6', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'showticklabels': False},\n", + " 'yaxis': {'anchor': 'x', 'domain': [0.0, 0.485], 'title': {'text': 'value'}},\n", + " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", + " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", + " 'yaxis4': {'anchor': 'x4', 'domain': [0.515, 1.0], 'matches': 'y', 'title': {'text': 'value'}},\n", + " 'yaxis5': {'anchor': 'x5', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False},\n", + " 'yaxis6': {'anchor': 'x6', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False}}\n", + "}))" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# View dimensions\n", "flow_rates = flow_system.statistics.flow_rates\n", @@ -408,10 +11414,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "25", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:26.616207Z", + "iopub.status.busy": "2025-12-18T08:00:26.616137Z", + "iopub.status.idle": "2025-12-18T08:00:26.618570Z", + "shell.execute_reply": "2025-12-18T08:00:26.618392Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mild Winter: avg 102 kW, max 142 kW\n", + "Harsh Winter: avg 134 kW, max 142 kW\n" + ] + } + ], "source": [ "# CHP operation summary by scenario\n", "chp_heat = flow_rates['CHP(Q_th)']\n", @@ -434,10 +11456,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "27", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:26.619528Z", + "iopub.status.busy": "2025-12-18T08:00:26.619472Z", + "iopub.status.idle": "2025-12-18T08:00:27.140517Z", + "shell.execute_reply": "2025-12-18T08:00:27.140284Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CHP sizing: 85 kW (mild only) vs 100 kW (both scenarios) → +15 kW for uncertainty\n" + ] + } + ], "source": [ "# Select only the mild winter scenario\n", "fs_mild = flow_system.transform.sel(scenario='Mild Winter')\n", @@ -463,10 +11500,64 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "id": "29", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:00:27.141545Z", + "iopub.status.busy": "2025-12-18T08:00:27.141474Z", + "iopub.status.idle": "2025-12-18T08:00:27.160342Z", + "shell.execute_reply": "2025-12-18T08:00:27.160153Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "PlotResult(data= Size: 2kB\n", + "Dimensions: (link: 8)\n", + "Coordinates:\n", + " * link (link) int64 64B 0 1 2 3 4 5 6 7\n", + " source (link) Date: Thu, 18 Dec 2025 09:13:07 +0100 Subject: [PATCH 4/7] Changing logging level to appropriate info level --- flixopt/flow_system.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flixopt/flow_system.py b/flixopt/flow_system.py index 8f2dba51b..20c7d66ea 100644 --- a/flixopt/flow_system.py +++ b/flixopt/flow_system.py @@ -597,7 +597,7 @@ def to_dataset(self, include_solution: bool = True) -> xr.Dataset: xr.Dataset: Dataset containing all DataArrays with structure in attributes """ if not self.connected_and_transformed: - logger.warning('FlowSystem is not connected_and_transformed. Connecting and transforming data now.') + logger.info('FlowSystem is not connected_and_transformed. Connecting and transforming data now.') self.connect_and_transform() ds = super().to_dataset() From 3112da95cdb781202cc8feb85b26cab78ddf9f7f Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 18 Dec 2025 09:16:37 +0100 Subject: [PATCH 5/7] Remove progress bars if log_to_console=False --- flixopt/flow_system.py | 1 + flixopt/optimization.py | 1 + 2 files changed, 2 insertions(+) diff --git a/flixopt/flow_system.py b/flixopt/flow_system.py index 20c7d66ea..13821b35b 100644 --- a/flixopt/flow_system.py +++ b/flixopt/flow_system.py @@ -1326,6 +1326,7 @@ def solve(self, solver: _Solver) -> FlowSystem: self.model.solve( solver_name=solver.name, + progress=CONFIG.Solving.log_to_console, **solver.options, ) diff --git a/flixopt/optimization.py b/flixopt/optimization.py index b4c7eb2a4..b76ceaf03 100644 --- a/flixopt/optimization.py +++ b/flixopt/optimization.py @@ -242,6 +242,7 @@ def solve( self.model.solve( log_fn=pathlib.Path(log_file) if log_file is not None else self.folder / f'{self.name}.log', solver_name=solver.name, + progress=CONFIG.Solving.log_to_console, **solver.options, ) self.durations['solving'] = round(timeit.default_timer() - t_start, 2) From df5c9fec088b47a41825dd62fdd250e607a201a6 Mon Sep 17 00:00:00 2001 From: FBumann <117816358+FBumann@users.noreply.github.com> Date: Thu, 18 Dec 2025 09:17:28 +0100 Subject: [PATCH 6/7] Improve aggregation notebook --- docs/notebooks/08a-aggregation.ipynb | 4562 +++++++++++++++++++++++++- 1 file changed, 4517 insertions(+), 45 deletions(-) diff --git a/docs/notebooks/08a-aggregation.ipynb b/docs/notebooks/08a-aggregation.ipynb index 9e0961ab7..863e73d24 100644 --- a/docs/notebooks/08a-aggregation.ipynb +++ b/docs/notebooks/08a-aggregation.ipynb @@ -4,7 +4,18 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": "# Aggregation\n\nSpeed up large problems with time series aggregation techniques.\n\nThis notebook introduces:\n\n- **Resampling**: Reduce time resolution (e.g., hourly → 4-hourly)\n- **Clustering**: Identify typical periods (e.g., 8 representative days)\n- **Two-stage optimization**: Size with reduced data, dispatch at full resolution\n- **Speed vs. accuracy trade-offs**: When to use each technique" + "source": [ + "# Aggregation\n", + "\n", + "Speed up large problems with time series aggregation techniques.\n", + "\n", + "This notebook introduces:\n", + "\n", + "- **Resampling**: Reduce time resolution (e.g., hourly → 4-hourly)\n", + "- **Clustering**: Identify typical periods (e.g., 8 representative days)\n", + "- **Two-stage optimization**: Size with reduced data, dispatch at full resolution\n", + "- **Speed vs. accuracy trade-offs**: When to use each technique" + ] }, { "cell_type": "markdown", @@ -16,10 +27,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "2", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:04.351669Z", + "iopub.status.busy": "2025-12-18T08:10:04.351579Z", + "iopub.status.idle": "2025-12-18T08:10:06.052871Z", + "shell.execute_reply": "2025-12-18T08:10:06.052636Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "flixopt.config.CONFIG" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "import timeit\n", "\n", @@ -36,14 +65,35 @@ "cell_type": "markdown", "id": "3", "metadata": {}, - "source": "## Load Time Series Data\n\nWe use real-world district heating data at 15-minute resolution (one month):" + "source": [ + "## Load Time Series Data\n", + "\n", + "We use real-world district heating data at 15-minute resolution (one month):" + ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "4", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:06.054037Z", + "iopub.status.busy": "2025-12-18T08:10:06.053966Z", + "iopub.status.idle": "2025-12-18T08:10:06.079102Z", + "shell.execute_reply": "2025-12-18T08:10:06.078889Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Timesteps: 2976 (31 days at 15-min resolution)\n", + "Heat demand: 122.2 - 266.2 MW\n", + "Electricity price: -3.3 - 72.6 €/MWh\n" + ] + } + ], "source": [ "# Load time series data (15-min resolution)\n", "data = pd.read_csv('data/Zeitreihen2020.csv', index_col=0, parse_dates=True).sort_index()\n", @@ -65,10 +115,3946 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "6", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:06.080301Z", + "iopub.status.busy": "2025-12-18T08:10:06.080228Z", + "iopub.status.idle": "2025-12-18T08:10:06.136543Z", + "shell.execute_reply": "2025-12-18T08:10:06.136331Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + " \n", + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Visualize first week\n", "profiles = xr.Dataset(\n", @@ -99,10 +4085,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "8", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:06.149441Z", + "iopub.status.busy": "2025-12-18T08:10:06.149331Z", + "iopub.status.idle": "2025-12-18T08:10:06.155848Z", + "shell.execute_reply": "2025-12-18T08:10:06.155647Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "System: 2976 timesteps\n" + ] + } + ], "source": [ "def build_system(timesteps, heat_demand, electricity_demand, electricity_price, gas_price):\n", " \"\"\"Build a district heating system with CHP, boiler, and storage (with investment options).\"\"\"\n", @@ -131,7 +4132,6 @@ " maximum_size=300,\n", " effects_of_investment_per_size={'costs': 10},\n", " ),\n", - " relative_minimum=0.3,\n", " ),\n", " fuel_flow=fx.Flow('Q_fu', bus='Coal'),\n", " ),\n", @@ -147,7 +4147,6 @@ " maximum_size=150,\n", " effects_of_investment_per_size={'costs': 5},\n", " ),\n", - " relative_minimum=0.1,\n", " ),\n", " fuel_flow=fx.Flow('Q_fu', bus='Gas'),\n", " ),\n", @@ -217,10 +4216,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "10", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:06.156816Z", + "iopub.status.busy": "2025-12-18T08:10:06.156750Z", + "iopub.status.idle": "2025-12-18T08:10:06.243674Z", + "shell.execute_reply": "2025-12-18T08:10:06.243441Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Resampled: 2976 → 186 timesteps (94% reduction)\n" + ] + } + ], "source": [ "solver = fx.solvers.HighsSolver(mip_gap=0.01)\n", "\n", @@ -233,10 +4247,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "11", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:06.244747Z", + "iopub.status.busy": "2025-12-18T08:10:06.244616Z", + "iopub.status.idle": "2025-12-18T08:10:07.068016Z", + "shell.execute_reply": "2025-12-18T08:10:07.067765Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Resampled: 0.8s, 2,186,508 €\n" + ] + } + ], "source": [ "# Optimize resampled system\n", "start = timeit.default_timer()\n", @@ -259,10 +4288,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "13", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:07.069139Z", + "iopub.status.busy": "2025-12-18T08:10:07.069066Z", + "iopub.status.idle": "2025-12-18T08:10:07.984990Z", + "shell.execute_reply": "2025-12-18T08:10:07.984774Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Stage 1 (sizing): 0.9s → CHP 300, Boiler 0, Storage 1000\n" + ] + } + ], "source": [ "# Stage 1: Sizing with resampled data\n", "start = timeit.default_timer()\n", @@ -278,10 +4322,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "14", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:07.985929Z", + "iopub.status.busy": "2025-12-18T08:10:07.985862Z", + "iopub.status.idle": "2025-12-18T08:10:11.109138Z", + "shell.execute_reply": "2025-12-18T08:10:11.108902Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Stage 2 (dispatch): 3.1s, 2,135,566 € (total: 4.0s)\n" + ] + } + ], "source": [ "# Stage 2: Dispatch at full resolution with fixed sizes\n", "start = timeit.default_timer()\n", @@ -306,10 +4365,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "16", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:11.110253Z", + "iopub.status.busy": "2025-12-18T08:10:11.110176Z", + "iopub.status.idle": "2025-12-18T08:10:17.391574Z", + "shell.execute_reply": "2025-12-18T08:10:17.391318Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Full optimization: 6.3s, 2,135,566 €\n" + ] + } + ], "source": [ "start = timeit.default_timer()\n", "fs_full = flow_system.copy()\n", @@ -329,10 +4403,78 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "18", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:17.392639Z", + "iopub.status.busy": "2025-12-18T08:10:17.392575Z", + "iopub.status.idle": "2025-12-18T08:10:17.409154Z", + "shell.execute_reply": "2025-12-18T08:10:17.408930Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
 Time [s]Cost [€]CHP Size [MW]Boiler Size [MW]Storage Size [MWh]Cost Gap [%]Speedup
Full (baseline)6.282,135,566300.00.010000.001.0x
Resampled (4h)0.822,186,508300.00.010002.397.6x
Two-Stage4.042,135,566300.00.01000-0.001.6x
\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Collect results\n", "results = {\n", @@ -390,10 +4532,130 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "20", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:17.410199Z", + "iopub.status.busy": "2025-12-18T08:10:17.410126Z", + "iopub.status.idle": "2025-12-18T08:10:17.451543Z", + "shell.execute_reply": "2025-12-18T08:10:17.451278Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "PlotResult(data= Size: 143kB\n", + "Dimensions: (time: 2977)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 24kB 2020-01-01 ... 2020-02-01\n", + "Data variables:\n", + " CHP(Q_th) (time) float64 24kB -264.1 -259.2 -261.4 ... -152.0 nan\n", + " Boiler(Q_th) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", + " Storage(Discharge) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", + " Storage(Charge) (time) float64 24kB 137.0 137.0 137.0 ... 1.0 1.0 nan\n", + " HeatDemand(Q_th) (time) float64 24kB 127.1 122.2 124.4 ... 151.0 nan, figure=Figure({\n", + " 'data': [{'hovertemplate': 'variable=CHP(Q_th)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#636EFA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('bOf7qfGAcMDRItv5fjJwwDzfT42XVn' ... '0fBSNjwL+8/kHgAGPAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=Boiler(Q_th)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=Storage(Discharge)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'Storage(Discharge)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Storage(Discharge)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=Storage(Charge)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'Storage(Charge)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Storage(Charge)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('AAAAAAAgYUAAAAAAACBhQAIAAAAAIG' ... '5yiQHwPwCADnKJAfA/AAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=HeatDemand(Q_th)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#B6E880', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('sp3vp8bDX0BEi2zn+4leQO58PzVeGl' ... 'kMAgNjQL+fGi/d4GJAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'}],\n", + " 'layout': {'bargap': 0,\n", + " 'bargroupgap': 0,\n", + " 'barmode': 'relative',\n", + " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", + " 'template': '...',\n", + " 'title': {'text': 'Heat'},\n", + " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", + " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", + "}))" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Full optimization heat balance\n", "fs_full.statistics.plot.balance('Heat')" @@ -401,10 +4663,130 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "21", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:17.453004Z", + "iopub.status.busy": "2025-12-18T08:10:17.452937Z", + "iopub.status.idle": "2025-12-18T08:10:17.492759Z", + "shell.execute_reply": "2025-12-18T08:10:17.492551Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "PlotResult(data= Size: 143kB\n", + "Dimensions: (time: 2977)\n", + "Coordinates:\n", + " * time (time) datetime64[ns] 24kB 2020-01-01 ... 2020-02-01\n", + "Data variables:\n", + " CHP(Q_th) (time) float64 24kB -264.1 -259.2 -261.4 ... -152.0 nan\n", + " Boiler(Q_th) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", + " Storage(Discharge) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 nan\n", + " Storage(Charge) (time) float64 24kB 137.0 137.0 137.0 ... 1.0 1.0 nan\n", + " HeatDemand(Q_th) (time) float64 24kB 127.1 122.2 124.4 ... 151.0 nan, figure=Figure({\n", + " 'data': [{'hovertemplate': 'variable=CHP(Q_th)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'CHP(Q_th)',\n", + " 'marker': {'color': '#636EFA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'CHP(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('bOf7qfGAcMDRItv5fjJwwDzfT42XVn' ... '0fBSNjwL+8/kHgAGPAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=Boiler(Q_th)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'Boiler(Q_th)',\n", + " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Boiler(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=Storage(Discharge)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'Storage(Discharge)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Storage(Discharge)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAD4vAAAAAAAAACAAAAAAAAA+P8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=Storage(Charge)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'Storage(Charge)',\n", + " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'Storage(Charge)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('AAAAAAAgYUAAAAAAACBhQAEAAAAAIG' ... '5yiQHwPwCADnKJAfA/AAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'},\n", + " {'hovertemplate': 'variable=HeatDemand(Q_th)
time=%{x}
value=%{y}',\n", + " 'legendgroup': 'HeatDemand(Q_th)',\n", + " 'marker': {'color': '#B6E880', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", + " 'name': 'HeatDemand(Q_th)',\n", + " 'orientation': 'v',\n", + " 'showlegend': True,\n", + " 'textposition': 'auto',\n", + " 'type': 'bar',\n", + " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", + " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", + " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", + " shape=(2977,), dtype='datetime64[ns]'),\n", + " 'xaxis': 'x',\n", + " 'y': {'bdata': ('sp3vp8bDX0BEi2zn+4leQO58PzVeGl' ... 'kMAgNjQL+fGi/d4GJAAAAAAAAA+H8='),\n", + " 'dtype': 'f8'},\n", + " 'yaxis': 'y'}],\n", + " 'layout': {'bargap': 0,\n", + " 'bargroupgap': 0,\n", + " 'barmode': 'relative',\n", + " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", + " 'template': '...',\n", + " 'title': {'text': 'Heat'},\n", + " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", + " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", + "}))" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Two-stage optimization heat balance\n", "fs_dispatch.statistics.plot.balance('Heat')" @@ -422,10 +4804,67 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "23", - "metadata": {}, - "outputs": [], + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-18T08:10:17.494622Z", + "iopub.status.busy": "2025-12-18T08:10:17.494548Z", + "iopub.status.idle": "2025-12-18T08:10:17.514365Z", + "shell.execute_reply": "2025-12-18T08:10:17.514080Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
" + ], + "text/plain": [ + "PlotResult(data= Size: 2kB\n", + "Dimensions: (link: 10)\n", + "Coordinates:\n", + " * link (link) int64 80B 0 1 2 3 4 5 6 7 8 9\n", + " source (link) Date: Thu, 18 Dec 2025 10:53:14 +0100 Subject: [PATCH 7/7] Fix gitignore and pre-commit and strip notebook output --- .gitignore | 2 + .pre-commit-config.yaml | 2 +- docs/notebooks/01-quickstart.ipynb | 14 +- docs/notebooks/02-heat-system.ipynb | 57 +- .../03-investment-optimization.ipynb | 13 +- .../04-operational-constraints.ipynb | 74 +- docs/notebooks/05-multi-carrier-system.ipynb | 65 +- .../06a-time-varying-parameters.ipynb | 100 +- docs/notebooks/06b-piecewise-conversion.ipynb | 4142 +----- docs/notebooks/06c-piecewise-effects.ipynb | 4258 +----- docs/notebooks/07-scenarios-and-periods.ipynb | 11167 +--------------- docs/notebooks/08a-aggregation.ipynb | 4544 +------ docs/notebooks/08b-rolling-horizon.ipynb | 4338 +----- .../09-plotting-and-data-access.ipynb | 7456 +---------- docs/notebooks/10-transmission.ipynb | 267 +- 15 files changed, 1048 insertions(+), 35451 deletions(-) diff --git a/.gitignore b/.gitignore index 169c1a587..49fa19800 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ *.pyc *.log +*.nc4 +*.nc results/ .idea/ .venv/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9bf4a8909..f30c2b5cb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,4 +20,4 @@ repos: rev: 0.8.2 hooks: - id: nbstripout - files: ^docs/examples.*\.ipynb$ + files: ^docs/.*\.ipynb$ diff --git a/docs/notebooks/01-quickstart.ipynb b/docs/notebooks/01-quickstart.ipynb index ba4becd0c..1500bce77 100644 --- a/docs/notebooks/01-quickstart.ipynb +++ b/docs/notebooks/01-quickstart.ipynb @@ -4,7 +4,19 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": "# Quickstart\n\nHeat a small workshop with a gas boiler - the minimal working example.\n\nThis notebook introduces the **core concepts** of flixopt:\n\n- **FlowSystem**: The container for your energy system model\n- **Bus**: Balance nodes where energy flows meet\n- **Effect**: Quantities to track and optimize (costs, emissions)\n- **Components**: Equipment like boilers, sources, and sinks\n- **Flow**: Connections between components and buses" + "source": [ + "# Quickstart\n", + "\n", + "Heat a small workshop with a gas boiler - the minimal working example.\n", + "\n", + "This notebook introduces the **core concepts** of flixopt:\n", + "\n", + "- **FlowSystem**: The container for your energy system model\n", + "- **Bus**: Balance nodes where energy flows meet\n", + "- **Effect**: Quantities to track and optimize (costs, emissions)\n", + "- **Components**: Equipment like boilers, sources, and sinks\n", + "- **Flow**: Connections between components and buses" + ] }, { "cell_type": "markdown", diff --git a/docs/notebooks/02-heat-system.ipynb b/docs/notebooks/02-heat-system.ipynb index f1392c72f..3ff933ec3 100644 --- a/docs/notebooks/02-heat-system.ipynb +++ b/docs/notebooks/02-heat-system.ipynb @@ -4,7 +4,18 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": "# Heat System\n\nDistrict heating with thermal storage and time-varying prices.\n\nThis notebook introduces:\n\n- **Storage**: Thermal buffer tanks with charging/discharging\n- **Time series data**: Using real demand profiles\n- **Multiple components**: Combining boiler, storage, and loads\n- **Result visualization**: Heatmaps, balance plots, and charge states" + "source": [ + "# Heat System\n", + "\n", + "District heating with thermal storage and time-varying prices.\n", + "\n", + "This notebook introduces:\n", + "\n", + "- **Storage**: Thermal buffer tanks with charging/discharging\n", + "- **Time series data**: Using real demand profiles\n", + "- **Multiple components**: Combining boiler, storage, and loads\n", + "- **Result visualization**: Heatmaps, balance plots, and charge states" + ] }, { "cell_type": "markdown", @@ -149,7 +160,49 @@ "id": "9", "metadata": {}, "outputs": [], - "source": "flow_system = fx.FlowSystem(timesteps)\nflow_system.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nflow_system.add_elements(\n # === Buses ===\n fx.Bus('Gas', carrier='gas'),\n fx.Bus('Heat', carrier='heat'),\n # === Effect ===\n fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n # === Gas Supply with time-varying price ===\n fx.Source(\n 'GasGrid',\n outputs=[fx.Flow('Gas', bus='Gas', size=500, effects_per_flow_hour=gas_price)],\n ),\n # === Gas Boiler: 150 kW, 92% efficiency ===\n fx.linear_converters.Boiler(\n 'Boiler',\n thermal_efficiency=0.92,\n thermal_flow=fx.Flow('Heat', bus='Heat', size=150),\n fuel_flow=fx.Flow('Gas', bus='Gas'),\n ),\n # === Thermal Storage: 500 kWh tank ===\n fx.Storage(\n 'ThermalStorage',\n capacity_in_flow_hours=500, # 500 kWh capacity\n initial_charge_state=250, # Start half-full\n minimal_final_charge_state=200, # End with at least 200 kWh\n eta_charge=0.98, # 98% charging efficiency\n eta_discharge=0.98, # 98% discharging efficiency\n relative_loss_per_hour=0.005, # 0.5% heat loss per hour\n charging=fx.Flow('Charge', bus='Heat', size=100), # Max 100 kW charging\n discharging=fx.Flow('Discharge', bus='Heat', size=100), # Max 100 kW discharging\n ),\n # === Office Heat Demand ===\n fx.Sink(\n 'Office',\n inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=heat_demand)],\n ),\n)" + "source": [ + "flow_system = fx.FlowSystem(timesteps)\n", + "flow_system.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "flow_system.add_elements(\n", + " # === Buses ===\n", + " fx.Bus('Gas', carrier='gas'),\n", + " fx.Bus('Heat', carrier='heat'),\n", + " # === Effect ===\n", + " fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n", + " # === Gas Supply with time-varying price ===\n", + " fx.Source(\n", + " 'GasGrid',\n", + " outputs=[fx.Flow('Gas', bus='Gas', size=500, effects_per_flow_hour=gas_price)],\n", + " ),\n", + " # === Gas Boiler: 150 kW, 92% efficiency ===\n", + " fx.linear_converters.Boiler(\n", + " 'Boiler',\n", + " thermal_efficiency=0.92,\n", + " thermal_flow=fx.Flow('Heat', bus='Heat', size=150),\n", + " fuel_flow=fx.Flow('Gas', bus='Gas'),\n", + " ),\n", + " # === Thermal Storage: 500 kWh tank ===\n", + " fx.Storage(\n", + " 'ThermalStorage',\n", + " capacity_in_flow_hours=500, # 500 kWh capacity\n", + " initial_charge_state=250, # Start half-full\n", + " minimal_final_charge_state=200, # End with at least 200 kWh\n", + " eta_charge=0.98, # 98% charging efficiency\n", + " eta_discharge=0.98, # 98% discharging efficiency\n", + " relative_loss_per_hour=0.005, # 0.5% heat loss per hour\n", + " charging=fx.Flow('Charge', bus='Heat', size=100), # Max 100 kW charging\n", + " discharging=fx.Flow('Discharge', bus='Heat', size=100), # Max 100 kW discharging\n", + " ),\n", + " # === Office Heat Demand ===\n", + " fx.Sink(\n", + " 'Office',\n", + " inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=heat_demand)],\n", + " ),\n", + ")" + ] }, { "cell_type": "markdown", diff --git a/docs/notebooks/03-investment-optimization.ipynb b/docs/notebooks/03-investment-optimization.ipynb index a9369998f..349c84ccf 100644 --- a/docs/notebooks/03-investment-optimization.ipynb +++ b/docs/notebooks/03-investment-optimization.ipynb @@ -4,7 +4,18 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": "# Sizing\n\nSize a solar heating system - let the optimizer decide equipment sizes.\n\nThis notebook introduces:\n\n- **InvestParameters**: Define investment decisions with size bounds and costs\n- **Investment costs**: Fixed costs and size-dependent costs\n- **Optimal sizing**: Let the optimizer find the best equipment sizes\n- **Trade-off analysis**: Balance investment vs. operating costs" + "source": [ + "# Sizing\n", + "\n", + "Size a solar heating system - let the optimizer decide equipment sizes.\n", + "\n", + "This notebook introduces:\n", + "\n", + "- **InvestParameters**: Define investment decisions with size bounds and costs\n", + "- **Investment costs**: Fixed costs and size-dependent costs\n", + "- **Optimal sizing**: Let the optimizer find the best equipment sizes\n", + "- **Trade-off analysis**: Balance investment vs. operating costs" + ] }, { "cell_type": "markdown", diff --git a/docs/notebooks/04-operational-constraints.ipynb b/docs/notebooks/04-operational-constraints.ipynb index aeb4edb57..fbb611d1c 100644 --- a/docs/notebooks/04-operational-constraints.ipynb +++ b/docs/notebooks/04-operational-constraints.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "217ee38bd32426e5", + "id": "0", "metadata": {}, "source": [ "# Constraints\n", @@ -19,14 +19,16 @@ }, { "cell_type": "markdown", - "id": "73f6d18d567c6329", + "id": "1", "metadata": {}, - "source": "## Setup" + "source": [ + "## Setup" + ] }, { "cell_type": "code", "execution_count": null, - "id": "e8a50bb05c1400f2", + "id": "2", "metadata": {}, "outputs": [], "source": [ @@ -42,7 +44,7 @@ }, { "cell_type": "markdown", - "id": "54d9decc2ccf8235", + "id": "3", "metadata": {}, "source": [ "## System Description\n", @@ -58,14 +60,16 @@ }, { "cell_type": "markdown", - "id": "65694ad43e7a1f42", + "id": "4", "metadata": {}, - "source": "## Define Time Horizon and Demand" + "source": [ + "## Define Time Horizon and Demand" + ] }, { "cell_type": "code", "execution_count": null, - "id": "8c606ee48c294628", + "id": "5", "metadata": {}, "outputs": [], "source": [ @@ -100,7 +104,7 @@ { "cell_type": "code", "execution_count": null, - "id": "fd4f46fa717b1572", + "id": "6", "metadata": {}, "outputs": [], "source": [ @@ -109,14 +113,16 @@ }, { "cell_type": "markdown", - "id": "2d823131e625dcfa", + "id": "7", "metadata": {}, - "source": "## Build System with Operational Constraints" + "source": [ + "## Build System with Operational Constraints" + ] }, { "cell_type": "code", "execution_count": null, - "id": "736dfa9a935f6c7e", + "id": "8", "metadata": {}, "outputs": [], "source": [ @@ -175,14 +181,16 @@ }, { "cell_type": "markdown", - "id": "70ae8aaa82997d51", + "id": "9", "metadata": {}, - "source": "## Run Optimization" + "source": [ + "## Run Optimization" + ] }, { "cell_type": "code", "execution_count": null, - "id": "76f27e3afe64f8c5", + "id": "10", "metadata": {}, "outputs": [], "source": [ @@ -191,7 +199,7 @@ }, { "cell_type": "markdown", - "id": "c42e2778fd0a8ca", + "id": "11", "metadata": {}, "source": [ "## Analyze Results\n", @@ -204,7 +212,7 @@ { "cell_type": "code", "execution_count": null, - "id": "9da80bc8faca05cd", + "id": "12", "metadata": {}, "outputs": [], "source": [ @@ -213,7 +221,7 @@ }, { "cell_type": "markdown", - "id": "c885d25675d71371", + "id": "13", "metadata": {}, "source": [ "### Main Boiler Operation\n", @@ -227,7 +235,7 @@ { "cell_type": "code", "execution_count": null, - "id": "5a549b8b60f32745", + "id": "14", "metadata": {}, "outputs": [], "source": [ @@ -236,7 +244,7 @@ }, { "cell_type": "markdown", - "id": "66816d462d2f2654", + "id": "15", "metadata": {}, "source": [ "### On/Off Status\n", @@ -247,7 +255,7 @@ { "cell_type": "code", "execution_count": null, - "id": "41801a37f07aa265", + "id": "16", "metadata": {}, "outputs": [], "source": [ @@ -268,14 +276,16 @@ }, { "cell_type": "markdown", - "id": "7ca893f03606362", + "id": "17", "metadata": {}, - "source": "### Startup Count and Costs" + "source": [ + "### Startup Count and Costs" + ] }, { "cell_type": "code", "execution_count": null, - "id": "a95273c9775e1fd9", + "id": "18", "metadata": {}, "outputs": [], "source": [ @@ -291,7 +301,7 @@ }, { "cell_type": "markdown", - "id": "e29cf8ae428387bd", + "id": "19", "metadata": {}, "source": [ "### Duration Curves\n", @@ -302,7 +312,7 @@ { "cell_type": "code", "execution_count": null, - "id": "14e906ea8912de10", + "id": "20", "metadata": {}, "outputs": [], "source": [ @@ -312,7 +322,7 @@ { "cell_type": "code", "execution_count": null, - "id": "15d6068612a73f84", + "id": "21", "metadata": {}, "outputs": [], "source": [ @@ -321,7 +331,7 @@ }, { "cell_type": "markdown", - "id": "8354cd68733d5086", + "id": "22", "metadata": {}, "source": [ "## Compare: Without Operational Constraints\n", @@ -332,7 +342,7 @@ { "cell_type": "code", "execution_count": null, - "id": "8769dbda34dd4ccf", + "id": "23", "metadata": {}, "outputs": [], "source": [ @@ -373,7 +383,7 @@ }, { "cell_type": "markdown", - "id": "64ddc254af867367", + "id": "24", "metadata": {}, "source": [ "### Energy Flow Sankey\n", @@ -384,7 +394,7 @@ { "cell_type": "code", "execution_count": null, - "id": "f2742f4b0a7c5323", + "id": "25", "metadata": {}, "outputs": [], "source": [ @@ -393,7 +403,7 @@ }, { "cell_type": "markdown", - "id": "2f9951587227304f", + "id": "26", "metadata": {}, "source": [ "## Key Concepts\n", diff --git a/docs/notebooks/05-multi-carrier-system.ipynb b/docs/notebooks/05-multi-carrier-system.ipynb index f09578c17..a1a9543fa 100644 --- a/docs/notebooks/05-multi-carrier-system.ipynb +++ b/docs/notebooks/05-multi-carrier-system.ipynb @@ -4,7 +4,18 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": "# Multi-Carrier\n\nHospital with CHP producing both electricity and heat.\n\nThis notebook introduces:\n\n- **Multiple energy carriers**: Electricity, heat, and gas in one system\n- **CHP (Cogeneration)**: Equipment producing multiple outputs\n- **Electricity market**: Buying and selling to the grid\n- **Carrier colors**: Visual distinction between energy types" + "source": [ + "# Multi-Carrier\n", + "\n", + "Hospital with CHP producing both electricity and heat.\n", + "\n", + "This notebook introduces:\n", + "\n", + "- **Multiple energy carriers**: Electricity, heat, and gas in one system\n", + "- **CHP (Cogeneration)**: Equipment producing multiple outputs\n", + "- **Electricity market**: Buying and selling to the grid\n", + "- **Carrier colors**: Visual distinction between energy types" + ] }, { "cell_type": "markdown", @@ -477,7 +488,57 @@ "cell_type": "markdown", "id": "26", "metadata": {}, - "source": "## Key Concepts\n\n### Multi-Carrier Systems\n\n- Multiple buses for different energy carriers (electricity, heat, gas)\n- Components can connect to multiple buses (CHP produces both electricity and heat)\n- Carriers enable automatic coloring in visualizations\n\n### CHP Modeling\n\n```python\nfx.linear_converters.CHP(\n 'CHP',\n electrical_efficiency=0.40, # Fuel → Electricity\n thermal_efficiency=0.50, # Fuel → Heat\n # Total efficiency = 0.40 + 0.50 = 0.90 (90%)\n electrical_flow=fx.Flow('P_el', bus='Electricity', size=200),\n thermal_flow=fx.Flow('Q_th', bus='Heat', size=250),\n fuel_flow=fx.Flow('Q_fuel', bus='Gas', size=500),\n)\n```\n\n### Electricity Markets\n\n- **Buy**: Source with positive cost\n- **Sell**: Sink with negative cost (= revenue)\n- Different prices for buy vs. sell (spread)\n\n### Tracking Multiple Effects\n\n```python\nfx.Effect('costs', '€', 'Total Costs', is_objective=True) # Minimize this\nfx.Effect('CO2', 'kg', 'CO2 Emissions') # Just track, don't optimize\n```\n\n## Summary\n\nYou learned how to:\n\n- Model **multiple energy carriers** (electricity, heat, gas)\n- Use **CHP** for combined heat and power production\n- Model **electricity markets** with buy/sell prices\n- Track **multiple effects** (costs and emissions)\n- Analyze **multi-carrier balances**\n\n### Next Steps\n\n- **[06a-time-varying-parameters](06a-time-varying-parameters.ipynb)**: Variable efficiency based on conditions\n- **[07-scenarios-and-periods](07-scenarios-and-periods.ipynb)**: Plan under uncertainty" + "source": [ + "## Key Concepts\n", + "\n", + "### Multi-Carrier Systems\n", + "\n", + "- Multiple buses for different energy carriers (electricity, heat, gas)\n", + "- Components can connect to multiple buses (CHP produces both electricity and heat)\n", + "- Carriers enable automatic coloring in visualizations\n", + "\n", + "### CHP Modeling\n", + "\n", + "```python\n", + "fx.linear_converters.CHP(\n", + " 'CHP',\n", + " electrical_efficiency=0.40, # Fuel → Electricity\n", + " thermal_efficiency=0.50, # Fuel → Heat\n", + " # Total efficiency = 0.40 + 0.50 = 0.90 (90%)\n", + " electrical_flow=fx.Flow('P_el', bus='Electricity', size=200),\n", + " thermal_flow=fx.Flow('Q_th', bus='Heat', size=250),\n", + " fuel_flow=fx.Flow('Q_fuel', bus='Gas', size=500),\n", + ")\n", + "```\n", + "\n", + "### Electricity Markets\n", + "\n", + "- **Buy**: Source with positive cost\n", + "- **Sell**: Sink with negative cost (= revenue)\n", + "- Different prices for buy vs. sell (spread)\n", + "\n", + "### Tracking Multiple Effects\n", + "\n", + "```python\n", + "fx.Effect('costs', '€', 'Total Costs', is_objective=True) # Minimize this\n", + "fx.Effect('CO2', 'kg', 'CO2 Emissions') # Just track, don't optimize\n", + "```\n", + "\n", + "## Summary\n", + "\n", + "You learned how to:\n", + "\n", + "- Model **multiple energy carriers** (electricity, heat, gas)\n", + "- Use **CHP** for combined heat and power production\n", + "- Model **electricity markets** with buy/sell prices\n", + "- Track **multiple effects** (costs and emissions)\n", + "- Analyze **multi-carrier balances**\n", + "\n", + "### Next Steps\n", + "\n", + "- **[06a-time-varying-parameters](06a-time-varying-parameters.ipynb)**: Variable efficiency based on conditions\n", + "- **[07-scenarios-and-periods](07-scenarios-and-periods.ipynb)**: Plan under uncertainty" + ] } ], "metadata": { diff --git a/docs/notebooks/06a-time-varying-parameters.ipynb b/docs/notebooks/06a-time-varying-parameters.ipynb index 5a6392556..5c833b2ea 100644 --- a/docs/notebooks/06a-time-varying-parameters.ipynb +++ b/docs/notebooks/06a-time-varying-parameters.ipynb @@ -26,8 +26,10 @@ }, { "cell_type": "code", + "execution_count": null, "id": "2", "metadata": {}, + "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", @@ -37,9 +39,7 @@ "import flixopt as fx\n", "\n", "fx.CONFIG.notebook()" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -50,8 +50,8 @@ "\n", "A heat pump's COP (Coefficient of Performance) depends on the temperature difference between source and sink:\n", "\n", - "- **Mild weather** (10\u00b0C outside): COP \u2248 4.5 (1 kWh electricity \u2192 4.5 kWh heat)\n", - "- **Cold weather** (-5\u00b0C outside): COP \u2248 2.5 (1 kWh electricity \u2192 2.5 kWh heat)\n", + "- **Mild weather** (10°C outside): COP ≈ 4.5 (1 kWh electricity → 4.5 kWh heat)\n", + "- **Cold weather** (-5°C outside): COP ≈ 2.5 (1 kWh electricity → 2.5 kWh heat)\n", "\n", "This time-varying relationship can be modeled directly using arrays in the conversion factors.\n", "\n", @@ -73,8 +73,10 @@ }, { "cell_type": "code", + "execution_count": null, "id": "5", "metadata": {}, + "outputs": [], "source": [ "# One winter week\n", "timesteps = pd.date_range('2024-01-22', periods=168, freq='h')\n", @@ -82,7 +84,7 @@ "hour_of_day = hours % 24\n", "\n", "# Outdoor temperature: daily cycle with cold nights\n", - "temp_base = 2 # Average temp in \u00b0C\n", + "temp_base = 2 # Average temp in °C\n", "temp_amplitude = 5 # Daily variation\n", "outdoor_temp = temp_base + temp_amplitude * np.sin((hour_of_day - 6) * np.pi / 12)\n", "\n", @@ -90,31 +92,31 @@ "np.random.seed(789)\n", "daily_offset = np.repeat(np.random.uniform(-3, 3, 7), 24)\n", "outdoor_temp = outdoor_temp + daily_offset" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "id": "6", "metadata": {}, + "outputs": [], "source": [ "# Heat demand: inversely related to outdoor temp (higher demand when colder)\n", "heat_demand = 200 - 8 * outdoor_temp\n", "heat_demand = np.clip(heat_demand, 100, 300)" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "id": "7", "metadata": {}, + "outputs": [], "source": [ "# Visualize input profiles\n", "profiles = xr.Dataset(\n", " {\n", - " 'Outdoor Temp [\u00b0C]': xr.DataArray(outdoor_temp, dims=['time'], coords={'time': timesteps}),\n", + " 'Outdoor Temp [°C]': xr.DataArray(outdoor_temp, dims=['time'], coords={'time': timesteps}),\n", " 'Heat Demand [kW]': xr.DataArray(heat_demand, dims=['time'], coords={'time': timesteps}),\n", " }\n", ")\n", @@ -124,9 +126,7 @@ "fig.update_yaxes(matches=None, showticklabels=True)\n", "fig.for_each_annotation(lambda a: a.update(text=a.text.split('=')[-1]))\n", "fig" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -144,36 +144,36 @@ }, { "cell_type": "code", + "execution_count": null, "id": "9", "metadata": {}, + "outputs": [], "source": [ "# COP calculation\n", - "T_supply = 45 + 273.15 # Supply temperature 45\u00b0C in Kelvin\n", + "T_supply = 45 + 273.15 # Supply temperature 45°C in Kelvin\n", "T_source = outdoor_temp + 273.15 # Outdoor temp in Kelvin\n", "\n", "carnot_cop = T_supply / (T_supply - T_source)\n", "real_cop = 0.45 * carnot_cop\n", "real_cop = np.clip(real_cop, 2.0, 5.0) # Physical limits" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "id": "10", "metadata": {}, + "outputs": [], "source": [ "# Visualize COP vs temperature relationship\n", "px.scatter(\n", " x=outdoor_temp,\n", " y=real_cop,\n", " title='Heat Pump COP vs Outdoor Temperature',\n", - " labels={'x': 'Outdoor Temperature [\u00b0C]', 'y': 'COP'},\n", + " labels={'x': 'Outdoor Temperature [°C]', 'y': 'COP'},\n", " opacity=0.5,\n", ")" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -191,11 +191,37 @@ }, { "cell_type": "code", + "execution_count": null, "id": "12", "metadata": {}, - "source": "flow_system = fx.FlowSystem(timesteps)\nflow_system.add_carriers(\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nflow_system.add_elements(\n # Buses\n fx.Bus('Electricity', carrier='electricity'),\n fx.Bus('Heat', carrier='heat'),\n # Effect for cost tracking\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # Grid electricity source\n fx.Source('Grid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.30)]),\n # Heat pump with TIME-VARYING COP\n fx.LinearConverter(\n 'HeatPump',\n inputs=[fx.Flow('Elec', bus='Electricity', size=150)],\n outputs=[fx.Flow('Heat', bus='Heat', size=500)],\n conversion_factors=[{'Elec': real_cop, 'Heat': 1}], # <-- Array for time-varying COP\n ),\n # Heat demand\n fx.Sink('Building', inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=heat_demand)]),\n)\n\nflow_system.optimize(fx.solvers.HighsSolver());", "outputs": [], - "execution_count": null + "source": [ + "flow_system = fx.FlowSystem(timesteps)\n", + "flow_system.add_carriers(\n", + " fx.Carrier('electricity', '#f1c40f', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "flow_system.add_elements(\n", + " # Buses\n", + " fx.Bus('Electricity', carrier='electricity'),\n", + " fx.Bus('Heat', carrier='heat'),\n", + " # Effect for cost tracking\n", + " fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n", + " # Grid electricity source\n", + " fx.Source('Grid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.30)]),\n", + " # Heat pump with TIME-VARYING COP\n", + " fx.LinearConverter(\n", + " 'HeatPump',\n", + " inputs=[fx.Flow('Elec', bus='Electricity', size=150)],\n", + " outputs=[fx.Flow('Heat', bus='Heat', size=500)],\n", + " conversion_factors=[{'Elec': real_cop, 'Heat': 1}], # <-- Array for time-varying COP\n", + " ),\n", + " # Heat demand\n", + " fx.Sink('Building', inputs=[fx.Flow('Heat', bus='Heat', size=1, fixed_relative_profile=heat_demand)]),\n", + ")\n", + "\n", + "flow_system.optimize(fx.solvers.HighsSolver());" + ] }, { "cell_type": "markdown", @@ -207,28 +233,30 @@ }, { "cell_type": "code", + "execution_count": null, "id": "14", "metadata": {}, + "outputs": [], "source": [ "flow_system.statistics.plot.balance('Heat')" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "id": "15", "metadata": {}, + "outputs": [], "source": [ "flow_system.statistics.plot.balance('Electricity')" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "code", + "execution_count": null, "id": "16", "metadata": {}, + "outputs": [], "source": [ "# Compare electricity consumption vs heat output using xarray for alignment\n", "# Create dataset with solution and input data - xarray auto-aligns by time coordinate\n", @@ -249,11 +277,9 @@ " x=comparison['outdoor_temp'].values,\n", " y=comparison['effective_cop'].values,\n", " title='Actual Operating COP vs Outdoor Temperature',\n", - " labels={'x': 'Outdoor Temperature [\u00b0C]', 'y': 'Operating COP'},\n", + " labels={'x': 'Outdoor Temperature [°C]', 'y': 'Operating COP'},\n", ")" - ], - "outputs": [], - "execution_count": null + ] }, { "cell_type": "markdown", @@ -283,7 +309,7 @@ "The conversion equation at each timestep:\n", "$$\\text{Input}_1 \\times \\text{factor}_1(t) + \\text{Input}_2 \\times \\text{factor}_2(t) + ... = 0$$\n", "\n", - "For a heat pump: `Elec * COP(t) - Heat * 1 = 0` \u2192 `Heat = Elec * COP(t)`\n", + "For a heat pump: `Elec * COP(t) - Heat * 1 = 0` → `Heat = Elec * COP(t)`\n", "\n", "### Common Use Cases\n", "\n", diff --git a/docs/notebooks/06b-piecewise-conversion.ipynb b/docs/notebooks/06b-piecewise-conversion.ipynb index 71e81e4ae..aa0ab7a89 100644 --- a/docs/notebooks/06b-piecewise-conversion.ipynb +++ b/docs/notebooks/06b-piecewise-conversion.ipynb @@ -14,26 +14,10 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "1", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T13:46:20.634505Z", - "start_time": "2025-12-13T13:46:16.763911Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "flixopt.config.CONFIG" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", @@ -73,14 +57,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "4", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T13:46:20.692018Z", - "start_time": "2025-12-13T13:46:20.688366Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "piecewise_efficiency = fx.PiecewiseConversion(\n", @@ -113,54 +92,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "6", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T13:46:21.272711Z", - "start_time": "2025-12-13T13:46:20.704350Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "FlowSystem\n", - "==========\n", - "Timesteps: 24 (Hour) [2024-01-22 to 2024-01-22]\n", - "Periods: None\n", - "Scenarios: None\n", - "Status: \u2713\n", - "\n", - "Components (3 items)\n", - "--------------------\n", - " * GasEngine\n", - " * GasGrid\n", - " * Load\n", - "\n", - "Buses (2 items)\n", - "---------------\n", - " * Electricity\n", - " * Gas\n", - "\n", - "Effects (2 items)\n", - "-----------------\n", - " * costs\n", - " * Penalty\n", - "\n", - "Flows (4 items)\n", - "---------------\n", - " * GasEngine(Elec)\n", - " * GasEngine(Fuel)\n", - " * GasGrid(Gas)\n", - " * Load(Elec)" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "timesteps = pd.date_range('2024-01-22', periods=24, freq='h')\n", "\n", @@ -171,7 +106,7 @@ "fs.add_elements(\n", " fx.Bus('Gas'),\n", " fx.Bus('Electricity'),\n", - " fx.Effect('costs', '\u20ac', is_standard=True, is_objective=True),\n", + " fx.Effect('costs', '€', is_standard=True, is_objective=True),\n", " fx.Source('GasGrid', outputs=[fx.Flow('Gas', bus='Gas', size=300, effects_per_flow_hour=0.05)]),\n", " fx.LinearConverter(\n", " 'GasEngine',\n", @@ -195,3950 +130,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "8", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T13:46:21.384359Z", - "start_time": "2025-12-13T13:46:21.288290Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "metadata": {}, + "outputs": [], "source": [ "fs.components['GasEngine'].piecewise_conversion.plot(x_flow='Fuel')" ] @@ -4153,119 +148,20 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "10", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T13:46:22.068940Z", - "start_time": "2025-12-13T13:46:21.920317Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 600B\n", - "Dimensions: (time: 25)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 200B 2024-01-22 ... 2024-01-23\n", - "Data variables:\n", - " GasEngine(Elec) (time) float64 200B -60.0 -67.76 -75.0 ... -45.0 -52.24 nan\n", - " Load(Elec) (time) float64 200B 60.0 67.76 75.0 ... 45.0 52.24 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=GasEngine(Elec)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'GasEngine(Elec)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'GasEngine(Elec)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-22T00:00:00.000000000', '2024-01-22T01:00:00.000000000',\n", - " '2024-01-22T02:00:00.000000000', '2024-01-22T03:00:00.000000000',\n", - " '2024-01-22T04:00:00.000000000', '2024-01-22T05:00:00.000000000',\n", - " '2024-01-22T06:00:00.000000000', '2024-01-22T07:00:00.000000000',\n", - " '2024-01-22T08:00:00.000000000', '2024-01-22T09:00:00.000000000',\n", - " '2024-01-22T10:00:00.000000000', '2024-01-22T11:00:00.000000000',\n", - " '2024-01-22T12:00:00.000000000', '2024-01-22T13:00:00.000000000',\n", - " '2024-01-22T14:00:00.000000000', '2024-01-22T15:00:00.000000000',\n", - " '2024-01-22T16:00:00.000000000', '2024-01-22T17:00:00.000000000',\n", - " '2024-01-22T18:00:00.000000000', '2024-01-22T19:00:00.000000000',\n", - " '2024-01-22T20:00:00.000000000', '2024-01-22T21:00:00.000000000',\n", - " '2024-01-22T22:00:00.000000000', '2024-01-22T23:00:00.000000000',\n", - " '2024-01-23T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAATsDFOq+87vBQwAAAAAAAwF' ... '///39GwHOKoYYiHkrAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Load(Elec)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Load(Elec)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Load(Elec)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-22T00:00:00.000000000', '2024-01-22T01:00:00.000000000',\n", - " '2024-01-22T02:00:00.000000000', '2024-01-22T03:00:00.000000000',\n", - " '2024-01-22T04:00:00.000000000', '2024-01-22T05:00:00.000000000',\n", - " '2024-01-22T06:00:00.000000000', '2024-01-22T07:00:00.000000000',\n", - " '2024-01-22T08:00:00.000000000', '2024-01-22T09:00:00.000000000',\n", - " '2024-01-22T10:00:00.000000000', '2024-01-22T11:00:00.000000000',\n", - " '2024-01-22T12:00:00.000000000', '2024-01-22T13:00:00.000000000',\n", - " '2024-01-22T14:00:00.000000000', '2024-01-22T15:00:00.000000000',\n", - " '2024-01-22T16:00:00.000000000', '2024-01-22T17:00:00.000000000',\n", - " '2024-01-22T18:00:00.000000000', '2024-01-22T19:00:00.000000000',\n", - " '2024-01-22T20:00:00.000000000', '2024-01-22T21:00:00.000000000',\n", - " '2024-01-22T22:00:00.000000000', '2024-01-22T23:00:00.000000000',\n", - " '2024-01-23T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAATkDFOq+87vBQQAAAAAAAwF' ... '///39GQHOKoYYiHkpAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Electricity (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "fs.statistics.plot.balance('Electricity')" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "11", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T13:46:22.102836Z", - "start_time": "2025-12-13T13:46:22.085158Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Efficiency range: 33.8% - 41.9%\n", - "Total cost: 182.96 \u20ac\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# Verify efficiency varies with load\n", "fuel = fs.solution['GasEngine(Fuel)|flow_rate']\n", @@ -4273,7 +169,7 @@ "efficiency = elec / fuel\n", "\n", "print(f'Efficiency range: {float(efficiency.min()):.1%} - {float(efficiency.max()):.1%}')\n", - "print(f'Total cost: {fs.solution[\"costs\"].item():.2f} \u20ac')" + "print(f'Total cost: {fs.solution[\"costs\"].item():.2f} €')" ] }, { diff --git a/docs/notebooks/06c-piecewise-effects.ipynb b/docs/notebooks/06c-piecewise-effects.ipynb index 3bc6c3943..3d7972b1c 100644 --- a/docs/notebooks/06c-piecewise-effects.ipynb +++ b/docs/notebooks/06c-piecewise-effects.ipynb @@ -17,26 +17,10 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "1", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T09:37:05.842524Z", - "start_time": "2025-12-13T09:37:01.302972Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "flixopt.config.CONFIG" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", @@ -57,11 +41,11 @@ "\n", "| Tier | Size Range | Cost per kWh | Notes |\n", "|------|------------|--------------|-------|\n", - "| Small | 50-100 kWh | 0.20 \u20ac/kWh | Residential units |\n", + "| Small | 50-100 kWh | 0.20 €/kWh | Residential units |\n", "| *Gap* | 100-200 kWh | *unavailable* | No products in this range |\n", - "| Medium | 200-400 kWh | 0.12 \u20ac/kWh | Commercial units |\n", + "| Medium | 200-400 kWh | 0.12 €/kWh | Commercial units |\n", "| *Gap* | 400-500 kWh | *unavailable* | No products in this range |\n", - "| Large | 500-800 kWh | 0.06 \u20ac/kWh | Industrial units |\n", + "| Large | 500-800 kWh | 0.06 €/kWh | Industrial units |\n", "\n", "The gaps represent size ranges where no products are available from manufacturers." ] @@ -78,26 +62,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "4", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T09:37:05.891430Z", - "start_time": "2025-12-13T09:37:05.883541Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Available size tiers:\n", - " Small: 50-100 kWh at 0.20 \u20ac/kWh\n", - " Medium: 200-400 kWh at 0.12 \u20ac/kWh\n", - " Large: 500-800 kWh at 0.06 \u20ac/kWh\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# Piecewise costs with gaps between tiers\n", "# Cost values are CUMULATIVE at each breakpoint\n", @@ -112,30 +80,25 @@ " piecewise_shares={\n", " 'costs': fx.Piecewise(\n", " [\n", - " fx.Piece(start=10, end=20), # 50kWh=10\u20ac, 100kWh=20\u20ac \u2192 0.20 \u20ac/kWh\n", - " fx.Piece(start=24, end=48), # 200kWh=24\u20ac, 400kWh=48\u20ac \u2192 0.12 \u20ac/kWh\n", - " fx.Piece(start=30, end=48), # 500kWh=30\u20ac, 800kWh=48\u20ac \u2192 0.06 \u20ac/kWh\n", + " fx.Piece(start=10, end=20), # 50kWh=10€, 100kWh=20€ → 0.20 €/kWh\n", + " fx.Piece(start=24, end=48), # 200kWh=24€, 400kWh=48€ → 0.12 €/kWh\n", + " fx.Piece(start=30, end=48), # 500kWh=30€, 800kWh=48€ → 0.06 €/kWh\n", " ]\n", " )\n", " },\n", ")\n", "\n", "print('Available size tiers:')\n", - "print(' Small: 50-100 kWh at 0.20 \u20ac/kWh')\n", - "print(' Medium: 200-400 kWh at 0.12 \u20ac/kWh')\n", - "print(' Large: 500-800 kWh at 0.06 \u20ac/kWh')" + "print(' Small: 50-100 kWh at 0.20 €/kWh')\n", + "print(' Medium: 200-400 kWh at 0.12 €/kWh')\n", + "print(' Large: 500-800 kWh at 0.06 €/kWh')" ] }, { "cell_type": "code", - "execution_count": 3, - "id": "8", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T09:37:05.919885Z", - "start_time": "2025-12-13T09:37:05.915254Z" - } - }, + "execution_count": null, + "id": "5", + "metadata": {}, "outputs": [], "source": [ "timesteps = pd.date_range('2024-01-01', periods=24, freq='h')\n", @@ -175,7 +138,7 @@ }, { "cell_type": "markdown", - "id": "120b3beb025756ef", + "id": "6", "metadata": {}, "source": [ "## Simple Arbitrage Scenario\n", @@ -185,7 +148,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "7", "metadata": {}, "source": [ "## Build and Solve the Model" @@ -193,59 +156,16 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "10", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T09:37:07.048599Z", - "start_time": "2025-12-13T09:37:05.935256Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "FlowSystem\n", - "==========\n", - "Timesteps: 24 (Hour) [2024-01-01 to 2024-01-01]\n", - "Periods: None\n", - "Scenarios: None\n", - "Status: \u2713\n", - "\n", - "Components (3 items)\n", - "--------------------\n", - " * Battery\n", - " * Demand\n", - " * Grid\n", - "\n", - "Buses (1 item)\n", - "--------------\n", - " * Elec\n", - "\n", - "Effects (2 items)\n", - "-----------------\n", - " * costs\n", - " * Penalty\n", - "\n", - "Flows (4 items)\n", - "---------------\n", - " * Battery(charge)\n", - " * Battery(discharge)\n", - " * Demand(Elec)\n", - " * Grid(Elec)" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "id": "8", + "metadata": {}, + "outputs": [], "source": [ "fs = fx.FlowSystem(timesteps)\n", "\n", "fs.add_elements(\n", " fx.Bus('Elec'),\n", - " fx.Effect('costs', '\u20ac', is_standard=True, is_objective=True),\n", + " fx.Effect('costs', '€', is_standard=True, is_objective=True),\n", " # Grid with time-varying price\n", " fx.Source('Grid', outputs=[fx.Flow('Elec', bus='Elec', size=500, effects_per_flow_hour=elec_price)]),\n", " # Battery with PIECEWISE investment cost (discrete tiers)\n", @@ -270,7 +190,7 @@ }, { "cell_type": "markdown", - "id": "be5dc58de4a3c809", + "id": "9", "metadata": {}, "source": [ "## Visualize the Cost Curve\n", @@ -287,3981 +207,28 @@ }, { "cell_type": "code", - "execution_count": 5, - "id": "c734d019ece6c6fe", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T09:37:07.301104Z", - "start_time": "2025-12-13T09:37:07.136275Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "id": "10", + "metadata": {}, + "outputs": [], "source": [ "piecewise_costs.plot(title='Battery Investment Cost (Discrete Tiers)')" ] }, { "cell_type": "markdown", - "id": "39b4ec726d6d43c1", + "id": "11", "metadata": {}, - "source": "## Results: Which Tier Was Selected?" + "source": [ + "## Results: Which Tier Was Selected?" + ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "12", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T09:37:08.189381Z", - "start_time": "2025-12-13T09:37:08.142348Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Selected tier: Large (500-800 kWh)\n", - "Battery size: 800 kWh\n", - "Total cost: 249.0 \u20ac\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "battery_size = fs.solution['Battery|size'].item()\n", "total_cost = fs.solution['costs'].item()\n", @@ -4278,7 +245,7 @@ "\n", "print(f'Selected tier: {tier}')\n", "print(f'Battery size: {battery_size:.0f} kWh')\n", - "print(f'Total cost: {total_cost:.1f} \u20ac')" + "print(f'Total cost: {total_cost:.1f} €')" ] }, { @@ -4291,147 +258,10 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "14", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T09:37:08.407306Z", - "start_time": "2025-12-13T09:37:08.263634Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 1kB\n", - "Dimensions: (time: 25)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 200B 2024-01-01 ... 2024-01-02\n", - "Data variables:\n", - " Grid(Elec) (time) float64 200B -100.0 -100.0 -100.0 ... -100.0 nan\n", - " Battery(discharge) (time) float64 200B -0.0 -7.267e-14 ... 1.243e-13 nan\n", - " Battery(charge) (time) float64 200B 0.0 4.425e-14 ... -1.385e-13 nan\n", - " Demand(Elec) (time) float64 200B 100.0 100.0 100.0 ... 100.0 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Grid(Elec)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Grid(Elec)',\n", - " 'marker': {'color': '#636EFA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Grid(Elec)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAWcD+//////9YwPD//////1' ... '////9YwP///////1jAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Battery(discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Battery(discharge)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Battery(discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIDs2puCeHQ0vfWsvI9KlT' ... 'zLt3xBPcy3fMu3fEE9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Battery(charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Battery(charge)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Battery(charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAADZtTcF8egoPT0r76NS5V' ... 'zLt3xDvcy3fMu3fEO9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Demand(Elec)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Demand(Elec)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Demand(Elec)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAWUAAAAAAAABZQAAAAAAAAF' ... 'AAAABZQAAAAAAAAFlAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Elec (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "fs.statistics.plot.balance('Elec')" ] @@ -4468,7 +298,11 @@ "cell_type": "markdown", "id": "16", "metadata": {}, - "source": "## Previous: Piecewise Conversion\n\nSee **[06b-piecewise-conversion](06b-piecewise-conversion.ipynb)** for modeling minimum load constraints with `PiecewiseConversion` + `StatusParameters`." + "source": [ + "## Previous: Piecewise Conversion\n", + "\n", + "See **[06b-piecewise-conversion](06b-piecewise-conversion.ipynb)** for modeling minimum load constraints with `PiecewiseConversion` + `StatusParameters`." + ] } ], "metadata": { diff --git a/docs/notebooks/07-scenarios-and-periods.ipynb b/docs/notebooks/07-scenarios-and-periods.ipynb index 035278cc0..db74afefb 100644 --- a/docs/notebooks/07-scenarios-and-periods.ipynb +++ b/docs/notebooks/07-scenarios-and-periods.ipynb @@ -27,28 +27,10 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "2", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:23.754893Z", - "iopub.status.busy": "2025-12-18T08:00:23.754819Z", - "iopub.status.idle": "2025-12-18T08:00:25.451512Z", - "shell.execute_reply": "2025-12-18T08:00:25.451273Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "flixopt.config.CONFIG" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", @@ -85,28 +67,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "5", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:25.452759Z", - "iopub.status.busy": "2025-12-18T08:00:25.452672Z", - "iopub.status.idle": "2025-12-18T08:00:25.455344Z", - "shell.execute_reply": "2025-12-18T08:00:25.455121Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time dimension: 168 hours\n", - "Periods: [2024, 2025, 2026]\n", - "Scenarios: ['Mild Winter', 'Harsh Winter']\n", - "Scenario weights: {'Mild Winter': np.float64(0.6), 'Harsh Winter': np.float64(0.4)}\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# Time horizon: one representative winter week\n", "timesteps = pd.date_range('2024-01-15', periods=168, freq='h') # 7 days\n", @@ -136,26 +100,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "7", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:25.456427Z", - "iopub.status.busy": "2025-12-18T08:00:25.456354Z", - "iopub.status.idle": "2025-12-18T08:00:25.459330Z", - "shell.execute_reply": "2025-12-18T08:00:25.459130Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mild winter demand: 60 - 163 kW\n", - "Harsh winter demand: 100 - 262 kW\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "hours = np.arange(168)\n", "hour_of_day = hours % 24\n", @@ -198,3946 +146,10 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "8", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:25.460244Z", - "iopub.status.busy": "2025-12-18T08:00:25.460176Z", - "iopub.status.idle": "2025-12-18T08:00:25.511948Z", - "shell.execute_reply": "2025-12-18T08:00:25.511726Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "metadata": {}, + "outputs": [], "source": [ "# Visualize demand scenarios with plotly\n", "fig = px.line(\n", @@ -4161,33 +173,10 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "10", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:25.526607Z", - "iopub.status.busy": "2025-12-18T08:00:25.526251Z", - "iopub.status.idle": "2025-12-18T08:00:25.529194Z", - "shell.execute_reply": "2025-12-18T08:00:25.528772Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Gas prices by period:\n", - " 2024: 0.06 €/kWh\n", - " 2025: 0.08 €/kWh\n", - " 2026: 0.10 €/kWh\n", - "\n", - "Electricity sell prices by period:\n", - " 2024: 0.28 €/kWh\n", - " 2025: 0.34 €/kWh\n", - " 2026: 0.43 €/kWh\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# Gas prices by period (€/kWh) - expected to rise\n", "gas_prices = np.array([0.06, 0.08, 0.10]) # 2024, 2025, 2026\n", @@ -4216,32 +205,10 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "12", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:25.530870Z", - "iopub.status.busy": "2025-12-18T08:00:25.530777Z", - "iopub.status.idle": "2025-12-18T08:00:25.535843Z", - "shell.execute_reply": "2025-12-18T08:00:25.535622Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "FlowSystem\n", - "==========\n", - "Timesteps: 168 (Hour) [2024-01-15 to 2024-01-21]\n", - "Periods: 3 (2024, 2025, 2026)\n", - "Scenarios: 2 (Mild Winter, Harsh Winter)\n", - "Status: ⚠\n", - "\n", - "\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "flow_system = fx.FlowSystem(\n", " timesteps=timesteps,\n", @@ -4268,16 +235,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "14", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:25.536926Z", - "iopub.status.busy": "2025-12-18T08:00:25.536862Z", - "iopub.status.idle": "2025-12-18T08:00:25.539776Z", - "shell.execute_reply": "2025-12-18T08:00:25.539613Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "flow_system.add_elements(\n", @@ -4361,16 +321,9 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "16", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:25.540675Z", - "iopub.status.busy": "2025-12-18T08:00:25.540614Z", - "iopub.status.idle": "2025-12-18T08:00:26.229428Z", - "shell.execute_reply": "2025-12-18T08:00:26.229092Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "flow_system.optimize(fx.solvers.HighsSolver(mip_gap=0.01));" @@ -4388,26 +341,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "18", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:26.230646Z", - "iopub.status.busy": "2025-12-18T08:00:26.230569Z", - "iopub.status.idle": "2025-12-18T08:00:26.232971Z", - "shell.execute_reply": "2025-12-18T08:00:26.232795Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimal CHP: 100 kW electrical (142 kW thermal)\n", - "Expected cost: 78 €\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "chp_size = flow_system.statistics.sizes['CHP(P_el)']\n", "total_cost = flow_system.solution['costs']\n", @@ -4428,1859 +365,10 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "id": "20", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:26.233949Z", - "iopub.status.busy": "2025-12-18T08:00:26.233890Z", - "iopub.status.idle": "2025-12-18T08:00:26.324788Z", - "shell.execute_reply": "2025-12-18T08:00:26.324557Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 26kB\n", - "Dimensions: (time: 169, period: 3, scenario: 2)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-01-22\n", - " * period (period) int64 24B 2024 2025 2026\n", - " * scenario (scenario) object 16B 'Mild Winter' 'Harsh Winter'\n", - "Data variables:\n", - " CHP(Q_th) (time, period, scenario) float64 8kB -84.97 -131.7 ... nan\n", - " Boiler(Q_th) (time, period, scenario) float64 8kB -0.0 -5.787 ... nan\n", - " HeatDemand(Q_th) (time, scenario, period) float64 8kB 84.97 84.97 ... nan, figure=Figure({\n", - " 'data': [{'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5ZuWpeU9VcDmqeLGgqdTwGDXQkqFnl' ... 'xWHg5WwNdz8Y/yvVjAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5ZuWpeU9VcDmqeLGgqdTwGDXQkqFnl' ... 'xWHg5WwNdz8Y/yvVjAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5ZuWpeU9VcDmqeLGgqdTwGDXQkqFnl' ... 'xWHg5WwNdz8Y/yvVjAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('7Hv2Kj51YMDZ/lMqRPtfwOx79io+dW' ... 'YqPnVgwOx79io+dWDAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('7PQwPGwuYcDZ/lMqRPtfwFu3ymX3NW' ... 'pl9zVhwFu3ymX3NWHAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('7PQwPGwuYcDZ/lMqRPtfwIghsvfjdm' ... 'HAlsphwF/aeHljzGHAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('ACBPJ8IlF8AAAAAAAAAAgMBZustcGi' ... 'taiVUlwKjX9Ae+yTrAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgECL2nkkOw' ... 'Ba65MSwDD8UjH0wzTAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgBDk4ZOTEDDAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'}],\n", - " 'layout': {'annotations': [{'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2024',\n", - " 'x': 0.15666666666666665,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2025',\n", - " 'x': 0.49,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2026',\n", - " 'x': 0.8233333333333333,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=Harsh Winter',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.2425,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=Mild Winter',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.7575000000000001,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'}],\n", - " 'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat [kW]'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.3133333333333333], 'title': {'text': 'time'}},\n", - " 'xaxis2': {'anchor': 'y2',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'title': {'text': 'time'}},\n", - " 'xaxis3': {'anchor': 'y3', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'title': {'text': 'time'}},\n", - " 'xaxis4': {'anchor': 'y4', 'domain': [0.0, 0.3133333333333333], 'matches': 'x', 'showticklabels': False},\n", - " 'xaxis5': {'anchor': 'y5',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'showticklabels': False},\n", - " 'xaxis6': {'anchor': 'y6', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'showticklabels': False},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 0.485], 'title': {'text': 'value'}},\n", - " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis4': {'anchor': 'x4', 'domain': [0.515, 1.0], 'matches': 'y', 'title': {'text': 'value'}},\n", - " 'yaxis5': {'anchor': 'x5', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis6': {'anchor': 'x6', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False}}\n", - "}))" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "flow_system.statistics.plot.balance('Heat')" ] @@ -6295,326 +383,10 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "22", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:26.326038Z", - "iopub.status.busy": "2025-12-18T08:00:26.325876Z", - "iopub.status.idle": "2025-12-18T08:00:26.370151Z", - "shell.execute_reply": "2025-12-18T08:00:26.369942Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 10kB\n", - "Dimensions: (timeframe: 8, timestep: 24, period: 3, scenario: 2)\n", - "Coordinates:\n", - " * timeframe (timeframe) object 64B '2024-01-15' '2024-01-16' ... '2024-01-22'\n", - " * timestep (timestep) object 192B '00:00' '01:00' ... '22:00' '23:00'\n", - " * period (period) int64 24B 2024 2025 2026\n", - " * scenario (scenario) object 16B 'Mild Winter' 'Harsh Winter'\n", - "Data variables:\n", - " value (timestep, timeframe, period, scenario) float64 9kB 84.97 ... nan, figure=Figure({\n", - " 'data': [{'coloraxis': 'coloraxis',\n", - " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
CHP(Q_th)|flow_rate: %{z}',\n", - " 'name': '0',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'yaxis': 'y',\n", - " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}},\n", - " {'coloraxis': 'coloraxis',\n", - " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
CHP(Q_th)|flow_rate: %{z}',\n", - " 'name': '1',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'xaxis': 'x2',\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'yaxis': 'y2',\n", - " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}},\n", - " {'coloraxis': 'coloraxis',\n", - " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
CHP(Q_th)|flow_rate: %{z}',\n", - " 'name': '2',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'xaxis': 'x3',\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'yaxis': 'y3',\n", - " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}}],\n", - " 'frames': [{'data': [{'coloraxis': 'coloraxis',\n", - " 'name': '0',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}},\n", - " {'coloraxis': 'coloraxis',\n", - " 'name': '1',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}},\n", - " {'coloraxis': 'coloraxis',\n", - " 'name': '2',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'z': {'bdata': ('5ZuWpeU9VUB1JJxVmKNSQI8Cqmvq21' ... 'NQaSp2VEDXc/GP8r1YQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}}],\n", - " 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'CHP(Q_th)|flow_rate'}},\n", - " 'colorscale': [[0.0, '#30123b'],\n", - " [0.07142857142857142,\n", - " '#4145ab'],\n", - " [0.14285714285714285,\n", - " '#4675ed'],\n", - " [0.21428571428571427,\n", - " '#39a2fc'],\n", - " [0.2857142857142857,\n", - " '#1bcfd4'],\n", - " [0.35714285714285715,\n", - " '#24eca6'],\n", - " [0.42857142857142855,\n", - " '#61fc6c'], [0.5,\n", - " '#a4fc3b'],\n", - " [0.5714285714285714,\n", - " '#d1e834'],\n", - " [0.6428571428571429,\n", - " '#f3c63a'],\n", - " [0.7142857142857143,\n", - " '#fe9b2d'],\n", - " [0.7857142857142857,\n", - " '#f36315'],\n", - " [0.8571428571428571,\n", - " '#d93806'],\n", - " [0.9285714285714286,\n", - " '#b11901'], [1.0,\n", - " '#7a0402']]},\n", - " 'margin': {'t': 60},\n", - " 'yaxis': {'autorange': 'reversed'}},\n", - " 'name': 'Mild Winter'},\n", - " {'data': [{'coloraxis': 'coloraxis',\n", - " 'name': '3',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'z': {'bdata': ('7Hv2Kj51YECvNmqAZHVeQOx79io+dW' ... 'v2Kj51YEDse/YqPnVgQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}},\n", - " {'coloraxis': 'coloraxis',\n", - " 'name': '4',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'z': {'bdata': ('7PQwPGwuYUCvNmqAZHVeQOyBv9Dv5G' ... '78zp+YYEBbt8pl9zVhQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}},\n", - " {'coloraxis': 'coloraxis',\n", - " 'name': '5',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'z': {'bdata': ('7PQwPGwuYUCvNmqAZHVeQOyBv9Dv5G' ... '78zp+YYEBf2nh5Y8xhQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}}],\n", - " 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'CHP(Q_th)|flow_rate'}},\n", - " 'colorscale': [[0.0, '#30123b'],\n", - " [0.07142857142857142,\n", - " '#4145ab'],\n", - " [0.14285714285714285,\n", - " '#4675ed'],\n", - " [0.21428571428571427,\n", - " '#39a2fc'],\n", - " [0.2857142857142857,\n", - " '#1bcfd4'],\n", - " [0.35714285714285715,\n", - " '#24eca6'],\n", - " [0.42857142857142855,\n", - " '#61fc6c'], [0.5,\n", - " '#a4fc3b'],\n", - " [0.5714285714285714,\n", - " '#d1e834'],\n", - " [0.6428571428571429,\n", - " '#f3c63a'],\n", - " [0.7142857142857143,\n", - " '#fe9b2d'],\n", - " [0.7857142857142857,\n", - " '#f36315'],\n", - " [0.8571428571428571,\n", - " '#d93806'],\n", - " [0.9285714285714286,\n", - " '#b11901'], [1.0,\n", - " '#7a0402']]},\n", - " 'margin': {'t': 60},\n", - " 'yaxis': {'autorange': 'reversed'}},\n", - " 'name': 'Harsh Winter'}],\n", - " 'layout': {'annotations': [{'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2024',\n", - " 'x': 0.15999999999999998,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2025',\n", - " 'x': 0.49999999999999994,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2026',\n", - " 'x': 0.8399999999999999,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'}],\n", - " 'coloraxis': {'colorbar': {'title': {'text': 'CHP(Q_th)|flow_rate'}},\n", - " 'colorscale': [[0.0, '#30123b'],\n", - " [0.07142857142857142, '#4145ab'],\n", - " [0.14285714285714285, '#4675ed'],\n", - " [0.21428571428571427, '#39a2fc'],\n", - " [0.2857142857142857, '#1bcfd4'],\n", - " [0.35714285714285715, '#24eca6'],\n", - " [0.42857142857142855, '#61fc6c'], [0.5,\n", - " '#a4fc3b'], [0.5714285714285714,\n", - " '#d1e834'], [0.6428571428571429,\n", - " '#f3c63a'], [0.7142857142857143,\n", - " '#fe9b2d'], [0.7857142857142857,\n", - " '#f36315'], [0.8571428571428571,\n", - " '#d93806'], [0.9285714285714286,\n", - " '#b11901'], [1.0, '#7a0402']]},\n", - " 'margin': {'t': 60},\n", - " 'sliders': [{'active': 0,\n", - " 'currentvalue': {'prefix': 'scenario='},\n", - " 'len': 0.9,\n", - " 'pad': {'b': 10, 't': 60},\n", - " 'steps': [{'args': [['Mild Winter'], {'frame':\n", - " {'duration': 0, 'redraw': True},\n", - " 'mode': 'immediate', 'fromcurrent':\n", - " True, 'transition': {'duration': 0,\n", - " 'easing': 'linear'}}],\n", - " 'label': 'Mild Winter',\n", - " 'method': 'animate'},\n", - " {'args': [['Harsh Winter'], {'frame':\n", - " {'duration': 0, 'redraw': True},\n", - " 'mode': 'immediate', 'fromcurrent':\n", - " True, 'transition': {'duration': 0,\n", - " 'easing': 'linear'}}],\n", - " 'label': 'Harsh Winter',\n", - " 'method': 'animate'}],\n", - " 'x': 0.1,\n", - " 'xanchor': 'left',\n", - " 'y': 0,\n", - " 'yanchor': 'top'}],\n", - " 'template': '...',\n", - " 'updatemenus': [{'buttons': [{'args': [None, {'frame': {'duration':\n", - " 500, 'redraw': True}, 'mode':\n", - " 'immediate', 'fromcurrent':\n", - " True, 'transition':\n", - " {'duration': 500, 'easing':\n", - " 'linear'}}],\n", - " 'label': '▶',\n", - " 'method': 'animate'},\n", - " {'args': [[None], {'frame':\n", - " {'duration': 0, 'redraw':\n", - " True}, 'mode': 'immediate',\n", - " 'fromcurrent': True,\n", - " 'transition': {'duration': 0,\n", - " 'easing': 'linear'}}],\n", - " 'label': '◼',\n", - " 'method': 'animate'}],\n", - " 'direction': 'left',\n", - " 'pad': {'r': 10, 't': 70},\n", - " 'showactive': False,\n", - " 'type': 'buttons',\n", - " 'x': 0.1,\n", - " 'xanchor': 'right',\n", - " 'y': 0,\n", - " 'yanchor': 'top'}],\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.31999999999999995], 'title': {'text': 'timeframe'}},\n", - " 'xaxis2': {'anchor': 'y2',\n", - " 'domain': [0.33999999999999997, 0.6599999999999999],\n", - " 'matches': 'x',\n", - " 'title': {'text': 'timeframe'}},\n", - " 'xaxis3': {'anchor': 'y3',\n", - " 'domain': [0.6799999999999999, 0.9999999999999999],\n", - " 'matches': 'x',\n", - " 'title': {'text': 'timeframe'}},\n", - " 'yaxis': {'anchor': 'x', 'autorange': 'reversed', 'domain': [0.0, 1.0], 'title': {'text': 'timestep'}},\n", - " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 1.0], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 1.0], 'matches': 'y', 'showticklabels': False}}\n", - "}))" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "flow_system.statistics.plot.heatmap('CHP(Q_th)')" ] @@ -6631,4778 +403,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "id": "24", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:26.371123Z", - "iopub.status.busy": "2025-12-18T08:00:26.371062Z", - "iopub.status.idle": "2025-12-18T08:00:26.614487Z", - "shell.execute_reply": "2025-12-18T08:00:26.614258Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Flow rates dimensions: {'period': 3, 'scenario': 2, 'time': 169}\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 66kB\n", - "Dimensions: (period: 3, scenario: 2, time: 169)\n", - "Coordinates:\n", - " * period (period) int64 24B 2024 2025 2026\n", - " * scenario (scenario) object 16B 'Mild Winter' 'Harsh Winter'\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-01-22\n", - "Data variables:\n", - " GasGrid(Gas) (time, period, scenario) float64 8kB 169.9 269.8 ... nan\n", - " CHP(Q_fuel) (time, period, scenario) float64 8kB 169.9 263.3 ... nan\n", - " CHP(Q_th) (time, period, scenario) float64 8kB 84.97 131.7 ... nan\n", - " CHP(P_el) (time, period, scenario) float64 8kB 59.48 92.16 ... nan\n", - " Boiler(Q_fuel) (time, period, scenario) float64 8kB 0.0 6.43 ... nan nan\n", - " Boiler(Q_th) (time, period, scenario) float64 8kB 0.0 5.787 ... nan nan\n", - " ElecSales(P_el) (time, period, scenario) float64 8kB 59.48 92.16 ... nan\n", - " HeatDemand(Q_th) (time, scenario, period) float64 8kB 84.97 84.97 ... nan, figure=Figure({\n", - " 'data': [{'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'GasGrid(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'GasGrid(Gas)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'GasGrid(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'GasGrid(Gas)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'GasGrid(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'GasGrid(Gas)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'GasGrid(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'GasGrid(Gas)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('0Gkz3x7ccEDZ/lMqRPtvQJiC0GNhBH' ... 'co4TJxQB+ZLpZ5UXJAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'GasGrid(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'GasGrid(Gas)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQObVLgwJWn' ... 'XRiIhxQG3sjD4hp3JAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=GasGrid(Gas)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'GasGrid(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'GasGrid(Gas)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQIghsvfjdn' ... 'HAlspxQBnD9vH76XJAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_fuel)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_fuel)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_fuel)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_fuel)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5ZuWpeU9ZUDmqeLGgqdjQGDXQkqFnm' ... 'xWHg5mQNdz8Y/yvWhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_fuel)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('7Hv2Kj51cEDZ/lMqRPtvQOx79io+dX' ... 'YqPnVwQOx79io+dXBAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_fuel)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQFu3ymX3NX' ... 'pl9zVxQFu3ymX3NXFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=CHP(Q_fuel)
scenar' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_fuel)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('7PQwPGwucUDZ/lMqRPtvQIghsvfjdn' ... 'HAlspxQF/aeHljzHFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_th)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('7Hv2Kj51YEDZ/lMqRPtfQOx79io+dW' ... 'YqPnVgQOx79io+dWBAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQFu3ymX3NW' ... 'pl9zVhQFu3ymX3NWFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=CHP(Q_th)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQF/aeHljzGFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(P_el)',\n", - " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(P_el)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(P_el)',\n", - " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(P_el)',\n", - " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(P_el)',\n", - " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('sOAlPIoKV0BkMqEdFmNWQLDgJTyKCl' ... 'U8igpXQLDgJTyKCldAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(P_el)',\n", - " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQLIAT1taGF' ... '9bWhhYQLIAT1taGFhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=CHP(P_el)
scenario' ... '}
value=%{y}'),\n", - " 'legendgroup': 'CHP(P_el)',\n", - " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQL77kic/c1' ... 'inbOhYQB6YD6rx6lhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_fuel)',\n", - " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_fuel)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_fuel)',\n", - " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_fuel)',\n", - " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_fuel)',\n", - " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('43g7Dy24GUAAAAAAAAAAAIDVQBtn5C' ... 'S6X7QnQCzTgbO2wz1AAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_fuel)',\n", - " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAGNFDzLTCA' ... '7WWqQUQBlRI4ydEjdAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=Boiler(Q_fuel)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_fuel)',\n", - " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_fuel)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAKCL3oeH2TFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_th)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('ACBPJ8IlF0AAAAAAAAAAAMBZustcGi' ... 'taiVUlQKjX9Ae+yTpAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAECL2nkkOw' ... 'Ba65MSQDD8UjH0wzRAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=Boiler(Q_th)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAABDk4ZOTEDBAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ElecSales(P_el)',\n", - " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ElecSales(P_el)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ElecSales(P_el)',\n", - " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ElecSales(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ElecSales(P_el)',\n", - " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ElecSales(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('pkA5Tg69TUDb7dZ8HYRLQFP6wzRURE' ... 'rfkOBOQOOdwmTDUVFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ElecSales(P_el)',\n", - " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ElecSales(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('sOAlPIoKV0BkMqEdFmNWQLDgJTyKCl' ... 'U8igpXQLDgJTyKCldAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ElecSales(P_el)',\n", - " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ElecSales(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQLIAT1taGF' ... '9bWhhYQLIAT1taGFhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=ElecSales(P_el)
sc' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ElecSales(P_el)',\n", - " 'line': {'color': '#FF6692', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ElecSales(P_el)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('ffCqusoNWEBkMqEdFmNWQL77kic/c1' ... 'inbOhYQB6YD6rx6lhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5ZuWpeU9VUDmqeLGgqdTQGDXQkqFnl' ... 'xWHg5WQNdz8Y/yvVhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=HeatDemand(Q_th)
s' ... '}
value=%{y}'),\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'line': {'color': '#B6E880', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'showlegend': False,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('7PQwPGwuYUDZ/lMqRPtfQIghsvfjdm' ... 'HAlsphQOEW9et1zmNAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'}],\n", - " 'layout': {'annotations': [{'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2024',\n", - " 'x': 0.15666666666666665,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2025',\n", - " 'x': 0.49,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2026',\n", - " 'x': 0.8233333333333333,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=Harsh Winter',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.2425,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=Mild Winter',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.7575000000000001,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'}],\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Flows [kW]'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.3133333333333333], 'title': {'text': 'time'}},\n", - " 'xaxis2': {'anchor': 'y2',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'title': {'text': 'time'}},\n", - " 'xaxis3': {'anchor': 'y3', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'title': {'text': 'time'}},\n", - " 'xaxis4': {'anchor': 'y4', 'domain': [0.0, 0.3133333333333333], 'matches': 'x', 'showticklabels': False},\n", - " 'xaxis5': {'anchor': 'y5',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'showticklabels': False},\n", - " 'xaxis6': {'anchor': 'y6', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'showticklabels': False},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 0.485], 'title': {'text': 'value'}},\n", - " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis4': {'anchor': 'x4', 'domain': [0.515, 1.0], 'matches': 'y', 'title': {'text': 'value'}},\n", - " 'yaxis5': {'anchor': 'x5', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis6': {'anchor': 'x6', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False}}\n", - "}))" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "# View dimensions\n", "flow_rates = flow_system.statistics.flow_rates\n", @@ -11414,26 +418,10 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "id": "25", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:26.616207Z", - "iopub.status.busy": "2025-12-18T08:00:26.616137Z", - "iopub.status.idle": "2025-12-18T08:00:26.618570Z", - "shell.execute_reply": "2025-12-18T08:00:26.618392Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Mild Winter: avg 102 kW, max 142 kW\n", - "Harsh Winter: avg 134 kW, max 142 kW\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# CHP operation summary by scenario\n", "chp_heat = flow_rates['CHP(Q_th)']\n", @@ -11456,25 +444,10 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "id": "27", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:26.619528Z", - "iopub.status.busy": "2025-12-18T08:00:26.619472Z", - "iopub.status.idle": "2025-12-18T08:00:27.140517Z", - "shell.execute_reply": "2025-12-18T08:00:27.140284Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CHP sizing: 85 kW (mild only) vs 100 kW (both scenarios) → +15 kW for uncertainty\n" - ] - } - ], + "metadata": {}, + "outputs": [], "source": [ "# Select only the mild winter scenario\n", "fs_mild = flow_system.transform.sel(scenario='Mild Winter')\n", @@ -11500,64 +473,10 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "id": "29", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:00:27.141545Z", - "iopub.status.busy": "2025-12-18T08:00:27.141474Z", - "iopub.status.idle": "2025-12-18T08:00:27.160342Z", - "shell.execute_reply": "2025-12-18T08:00:27.160153Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 2kB\n", - "Dimensions: (link: 8)\n", - "Coordinates:\n", - " * link (link) int64 64B 0 1 2 3 4 5 6 7\n", - " source (link) \n", - " window.PlotlyConfig = {MathJaxConfig: 'local'};\n", - " if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Config) {window.MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n", - " \n", - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "id": "5", + "metadata": {}, + "outputs": [], "source": [ "# Visualize first week\n", "profiles = xr.Dataset(\n", @@ -4075,7 +104,7 @@ }, { "cell_type": "markdown", - "id": "7", + "id": "6", "metadata": {}, "source": [ "## Build the Base FlowSystem\n", @@ -4085,25 +114,10 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "8", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:06.149441Z", - "iopub.status.busy": "2025-12-18T08:10:06.149331Z", - "iopub.status.idle": "2025-12-18T08:10:06.155848Z", - "shell.execute_reply": "2025-12-18T08:10:06.155647Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "System: 2976 timesteps\n" - ] - } - ], + "execution_count": null, + "id": "7", + "metadata": {}, + "outputs": [], "source": [ "def build_system(timesteps, heat_demand, electricity_demand, electricity_price, gas_price):\n", " \"\"\"Build a district heating system with CHP, boiler, and storage (with investment options).\"\"\"\n", @@ -4206,7 +220,7 @@ }, { "cell_type": "markdown", - "id": "9", + "id": "8", "metadata": {}, "source": [ "## Technique 1: Resampling\n", @@ -4216,25 +230,10 @@ }, { "cell_type": "code", - "execution_count": 5, - "id": "10", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:06.156816Z", - "iopub.status.busy": "2025-12-18T08:10:06.156750Z", - "iopub.status.idle": "2025-12-18T08:10:06.243674Z", - "shell.execute_reply": "2025-12-18T08:10:06.243441Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Resampled: 2976 → 186 timesteps (94% reduction)\n" - ] - } - ], + "execution_count": null, + "id": "9", + "metadata": {}, + "outputs": [], "source": [ "solver = fx.solvers.HighsSolver(mip_gap=0.01)\n", "\n", @@ -4247,25 +246,10 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "11", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:06.244747Z", - "iopub.status.busy": "2025-12-18T08:10:06.244616Z", - "iopub.status.idle": "2025-12-18T08:10:07.068016Z", - "shell.execute_reply": "2025-12-18T08:10:07.067765Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Resampled: 0.8s, 2,186,508 €\n" - ] - } - ], + "execution_count": null, + "id": "10", + "metadata": {}, + "outputs": [], "source": [ "# Optimize resampled system\n", "start = timeit.default_timer()\n", @@ -4277,7 +261,7 @@ }, { "cell_type": "markdown", - "id": "12", + "id": "11", "metadata": {}, "source": [ "## Technique 2: Two-Stage Optimization\n", @@ -4288,25 +272,10 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "13", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:07.069139Z", - "iopub.status.busy": "2025-12-18T08:10:07.069066Z", - "iopub.status.idle": "2025-12-18T08:10:07.984990Z", - "shell.execute_reply": "2025-12-18T08:10:07.984774Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Stage 1 (sizing): 0.9s → CHP 300, Boiler 0, Storage 1000\n" - ] - } - ], + "execution_count": null, + "id": "12", + "metadata": {}, + "outputs": [], "source": [ "# Stage 1: Sizing with resampled data\n", "start = timeit.default_timer()\n", @@ -4322,25 +291,10 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "14", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:07.985929Z", - "iopub.status.busy": "2025-12-18T08:10:07.985862Z", - "iopub.status.idle": "2025-12-18T08:10:11.109138Z", - "shell.execute_reply": "2025-12-18T08:10:11.108902Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Stage 2 (dispatch): 3.1s, 2,135,566 € (total: 4.0s)\n" - ] - } - ], + "execution_count": null, + "id": "13", + "metadata": {}, + "outputs": [], "source": [ "# Stage 2: Dispatch at full resolution with fixed sizes\n", "start = timeit.default_timer()\n", @@ -4355,7 +309,7 @@ }, { "cell_type": "markdown", - "id": "15", + "id": "14", "metadata": {}, "source": [ "## Technique 3: Full Optimization (Baseline)\n", @@ -4365,25 +319,10 @@ }, { "cell_type": "code", - "execution_count": 9, - "id": "16", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:11.110253Z", - "iopub.status.busy": "2025-12-18T08:10:11.110176Z", - "iopub.status.idle": "2025-12-18T08:10:17.391574Z", - "shell.execute_reply": "2025-12-18T08:10:17.391318Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Full optimization: 6.3s, 2,135,566 €\n" - ] - } - ], + "execution_count": null, + "id": "15", + "metadata": {}, + "outputs": [], "source": [ "start = timeit.default_timer()\n", "fs_full = flow_system.copy()\n", @@ -4395,7 +334,7 @@ }, { "cell_type": "markdown", - "id": "17", + "id": "16", "metadata": {}, "source": [ "## Compare Results" @@ -4403,78 +342,10 @@ }, { "cell_type": "code", - "execution_count": 10, - "id": "18", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:17.392639Z", - "iopub.status.busy": "2025-12-18T08:10:17.392575Z", - "iopub.status.idle": "2025-12-18T08:10:17.409154Z", - "shell.execute_reply": "2025-12-18T08:10:17.408930Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
 Time [s]Cost [€]CHP Size [MW]Boiler Size [MW]Storage Size [MWh]Cost Gap [%]Speedup
Full (baseline)6.282,135,566300.00.010000.001.0x
Resampled (4h)0.822,186,508300.00.010002.397.6x
Two-Stage4.042,135,566300.00.01000-0.001.6x
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "id": "17", + "metadata": {}, + "outputs": [], "source": [ "# Collect results\n", "results = {\n", @@ -4524,7 +395,7 @@ }, { "cell_type": "markdown", - "id": "19", + "id": "18", "metadata": {}, "source": [ "## Visual Comparison: Heat Balance" @@ -4532,130 +403,10 @@ }, { "cell_type": "code", - "execution_count": 11, - "id": "20", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:17.410199Z", - "iopub.status.busy": "2025-12-18T08:10:17.410126Z", - "iopub.status.idle": "2025-12-18T08:10:17.451543Z", - "shell.execute_reply": "2025-12-18T08:10:17.451278Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 143kB\n", - "Dimensions: (time: 2977)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 24kB 2020-01-01 ... 2020-02-01\n", - "Data variables:\n", - " CHP(Q_th) (time) float64 24kB -264.1 -259.2 -261.4 ... -152.0 nan\n", - " Boiler(Q_th) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", - " Storage(Discharge) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", - " Storage(Charge) (time) float64 24kB 137.0 137.0 137.0 ... 1.0 1.0 nan\n", - " HeatDemand(Q_th) (time) float64 24kB 127.1 122.2 124.4 ... 151.0 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=CHP(Q_th)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#636EFA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('bOf7qfGAcMDRItv5fjJwwDzfT42XVn' ... '0fBSNjwL+8/kHgAGPAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Boiler(Q_th)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Storage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Storage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Storage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Storage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Storage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Storage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAgYUAAAAAAACBhQAIAAAAAIG' ... '5yiQHwPwCADnKJAfA/AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatDemand(Q_th)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#B6E880', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('sp3vp8bDX0BEi2zn+4leQO58PzVeGl' ... 'kMAgNjQL+fGi/d4GJAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "id": "19", + "metadata": {}, + "outputs": [], "source": [ "# Full optimization heat balance\n", "fs_full.statistics.plot.balance('Heat')" @@ -4663,130 +414,10 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "21", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:17.453004Z", - "iopub.status.busy": "2025-12-18T08:10:17.452937Z", - "iopub.status.idle": "2025-12-18T08:10:17.492759Z", - "shell.execute_reply": "2025-12-18T08:10:17.492551Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 143kB\n", - "Dimensions: (time: 2977)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 24kB 2020-01-01 ... 2020-02-01\n", - "Data variables:\n", - " CHP(Q_th) (time) float64 24kB -264.1 -259.2 -261.4 ... -152.0 nan\n", - " Boiler(Q_th) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", - " Storage(Discharge) (time) float64 24kB -0.0 -0.0 -0.0 ... -0.0 nan\n", - " Storage(Charge) (time) float64 24kB 137.0 137.0 137.0 ... 1.0 1.0 nan\n", - " HeatDemand(Q_th) (time) float64 24kB 127.1 122.2 124.4 ... 151.0 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=CHP(Q_th)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'CHP(Q_th)',\n", - " 'marker': {'color': '#636EFA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('bOf7qfGAcMDRItv5fjJwwDzfT42XVn' ... '0fBSNjwL+8/kHgAGPAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Boiler(Q_th)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Q_th)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Storage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Storage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Storage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAD4vAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Storage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Storage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Storage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAgYUAAAAAAACBhQAEAAAAAIG' ... '5yiQHwPwCADnKJAfA/AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatDemand(Q_th)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatDemand(Q_th)',\n", - " 'marker': {'color': '#B6E880', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Q_th)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2020-01-01T00:00:00.000000000', '2020-01-01T00:15:00.000000000',\n", - " '2020-01-01T00:30:00.000000000', ..., '2020-01-31T23:30:00.000000000',\n", - " '2020-01-31T23:45:00.000000000', '2020-02-01T00:00:00.000000000'],\n", - " shape=(2977,), dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('sp3vp8bDX0BEi2zn+4leQO58PzVeGl' ... 'kMAgNjQL+fGi/d4GJAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "id": "20", + "metadata": {}, + "outputs": [], "source": [ "# Two-stage optimization heat balance\n", "fs_dispatch.statistics.plot.balance('Heat')" @@ -4794,7 +425,7 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "21", "metadata": {}, "source": [ "### Energy Flow Sankey (Full Optimization)\n", @@ -4804,74 +435,17 @@ }, { "cell_type": "code", - "execution_count": 13, - "id": "23", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-18T08:10:17.494622Z", - "iopub.status.busy": "2025-12-18T08:10:17.494548Z", - "iopub.status.idle": "2025-12-18T08:10:17.514365Z", - "shell.execute_reply": "2025-12-18T08:10:17.514080Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "
" - ], - "text/plain": [ - "PlotResult(data= Size: 2kB\n", - "Dimensions: (link: 10)\n", - "Coordinates:\n", - " * link (link) int64 80B 0 1 2 3 4 5 6 7 8 9\n", - " source (link) \n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
 Time [s]Cost [€]Cost Gap [%]
Method   
Full optimization70.871,540,2000.00
Rolling horizon30.921,540,6760.03
\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": {}, + "outputs": [], "source": [ "cost_full = fs_full.solution['costs'].item()\n", "cost_rolling = fs_rolling.solution['costs'].item()\n", @@ -344,4002 +284,20 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "13", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T19:03:28.570509Z", - "start_time": "2025-12-13T19:03:27.661Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " \n", - " " - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "text/html": [ - "
" - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "metadata": {}, + "outputs": [], "source": [ "fs_full.statistics.plot.balance('Heat').figure.update_layout(title='Heat Balance (Full)')" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "14", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T19:03:29.994610Z", - "start_time": "2025-12-13T19:03:29.772272Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "metadata": {}, + "outputs": [], "source": [ "fs_rolling.statistics.plot.balance('Heat').figure.update_layout(title='Heat Balance (Rolling)')" ] @@ -4356,52 +314,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "16", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T19:03:30.194568Z", - "start_time": "2025-12-13T19:03:30.141045Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "metadata": {}, + "outputs": [], "source": [ "fig = make_subplots(\n", " rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.1, subplot_titles=['Full Optimization', 'Rolling Horizon']\n", @@ -4435,12 +351,7 @@ "cell_type": "code", "execution_count": null, "id": "18", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T19:03:30.246423Z", - "start_time": "2025-12-13T19:03:30.228470Z" - } - }, + "metadata": {}, "outputs": [], "source": [ "print(f'{len(segments)} segments:')\n", @@ -4454,56 +365,18 @@ "cell_type": "markdown", "id": "19", "metadata": {}, - "source": "## Visualize Segment Overlaps\n\nUnderstanding how segments overlap is key to tuning rolling horizon. Let's visualize the flow rates from each segment including their overlap regions:" + "source": [ + "## Visualize Segment Overlaps\n", + "\n", + "Understanding how segments overlap is key to tuning rolling horizon. Let's visualize the flow rates from each segment including their overlap regions:" + ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "id": "20", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T19:03:30.528986Z", - "start_time": "2025-12-13T19:03:30.272546Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "metadata": {}, + "outputs": [], "source": [ "# Concatenate all segment solutions into one dataset (including overlaps)\n", "ds = xr.concat([seg.solution for seg in segments], dim=pd.RangeIndex(len(segments), name='segment'), join='outer')\n", @@ -4517,52 +390,10 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "d7c660381f2190e0", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T19:03:30.963250Z", - "start_time": "2025-12-13T19:03:30.651056Z" - } - }, - "outputs": [ - { - "data": { - "text/html": [ - "
" - ] - }, - "jetTransient": { - "display_id": null - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": null, + "id": "21", + "metadata": {}, + "outputs": [], "source": [ "px.line(\n", " ds['Storage|charge_state'].to_pandas().T,\n", @@ -4572,7 +403,7 @@ }, { "cell_type": "markdown", - "id": "21", + "id": "22", "metadata": {}, "source": [ "## When to Use Rolling Horizon\n", @@ -4593,7 +424,7 @@ }, { "cell_type": "markdown", - "id": "22", + "id": "23", "metadata": {}, "source": [ "## API Reference\n", @@ -4617,9 +448,28 @@ }, { "cell_type": "markdown", - "id": "23", + "id": "24", "metadata": {}, - "source": "## Summary\n\nYou learned how to:\n\n- Use **`optimize.rolling_horizon()`** to decompose large problems\n- Choose **horizon** and **overlap** parameters\n- Understand the **trade-offs** vs. full optimization\n\n### Key Takeaways\n\n1. **Rolling horizon** is useful for memory-limited or operational planning problems\n2. **Overlap** improves solution quality at the cost of computation time\n3. **Storage states** are automatically transferred between segments\n4. Use **full optimization** for investment decisions\n\n### Related Notebooks\n\n- **[08a-Aggregation](08a-aggregation.ipynb)**: For investment problems, use time series aggregation (resampling, clustering) instead" + "source": [ + "## Summary\n", + "\n", + "You learned how to:\n", + "\n", + "- Use **`optimize.rolling_horizon()`** to decompose large problems\n", + "- Choose **horizon** and **overlap** parameters\n", + "- Understand the **trade-offs** vs. full optimization\n", + "\n", + "### Key Takeaways\n", + "\n", + "1. **Rolling horizon** is useful for memory-limited or operational planning problems\n", + "2. **Overlap** improves solution quality at the cost of computation time\n", + "3. **Storage states** are automatically transferred between segments\n", + "4. Use **full optimization** for investment decisions\n", + "\n", + "### Related Notebooks\n", + "\n", + "- **[08a-Aggregation](08a-aggregation.ipynb)**: For investment problems, use time series aggregation (resampling, clustering) instead" + ] } ], "metadata": { diff --git a/docs/notebooks/09-plotting-and-data-access.ipynb b/docs/notebooks/09-plotting-and-data-access.ipynb index 36118d1d3..a4803adf4 100644 --- a/docs/notebooks/09-plotting-and-data-access.ipynb +++ b/docs/notebooks/09-plotting-and-data-access.ipynb @@ -4,7 +4,22 @@ "cell_type": "markdown", "id": "0", "metadata": {}, - "source": "# Plotting\n\nAccess optimization results and create visualizations.\n\nThis notebook covers:\n\n- Loading saved FlowSystems from NetCDF files\n- Accessing data (flow rates, sizes, effects, charge states)\n- Time series plots (balance, flows, storage)\n- Aggregated plots (sizes, effects, duration curves)\n- Heatmaps with time reshaping\n- Sankey diagrams\n- Topology visualization\n- Color customization and export" + "source": [ + "# Plotting\n", + "\n", + "Access optimization results and create visualizations.\n", + "\n", + "This notebook covers:\n", + "\n", + "- Loading saved FlowSystems from NetCDF files\n", + "- Accessing data (flow rates, sizes, effects, charge states)\n", + "- Time series plots (balance, flows, storage)\n", + "- Aggregated plots (sizes, effects, duration curves)\n", + "- Heatmaps with time reshaping\n", + "- Sankey diagrams\n", + "- Topology visualization\n", + "- Color customization and export" + ] }, { "cell_type": "markdown", @@ -16,33 +31,17 @@ }, { "cell_type": "code", + "execution_count": null, "id": "2", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:06.543191Z", - "start_time": "2025-12-13T14:13:00.434024Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import flixopt as fx\n", "\n", "fx.CONFIG.notebook()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "flixopt.config.CONFIG" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 1 + ] }, { "cell_type": "markdown", @@ -56,16 +55,14 @@ }, { "cell_type": "code", + "execution_count": null, "id": "4", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:14.318678Z", - "start_time": "2025-12-13T14:13:06.637107Z" - } - }, - "source": "# Run the generation script (only needed once, or to regenerate)\n!python data/generate_example_systems.py > /dev/null 2>&1", + "metadata": {}, "outputs": [], - "execution_count": null + "source": [ + "# Run the generation script (only needed once, or to regenerate)\n", + "!python data/generate_example_systems.py > /dev/null 2>&1" + ] }, { "cell_type": "markdown", @@ -79,13 +76,10 @@ }, { "cell_type": "code", + "execution_count": null, "id": "6", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:14.940793Z", - "start_time": "2025-12-13T14:13:14.377412Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "DATA_DIR = Path('data')\n", "\n", @@ -98,483 +92,45 @@ "print(f' simple: {len(simple.components)} components, {len(simple.buses)} buses')\n", "print(f' complex_sys: {len(complex_sys.components)} components, {len(complex_sys.buses)} buses')\n", "print(f' multiperiod: {len(multiperiod.components)} components, dims={dict(multiperiod.solution.sizes)}')" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Loaded systems:\n", - " simple: 4 components, 2 buses\n", - " complex_sys: 9 components, 3 buses\n", - " multiperiod: 4 components, dims={'scenario': 2, 'period': 3, 'time': 49}\n" - ] - } - ], - "execution_count": 3 + ] }, { "cell_type": "markdown", "id": "7", "metadata": {}, - "source": "## 2. Quick Overview: Balance Plot\n\nLet's start with the most common visualization - a balance plot showing energy flows:" + "source": [ + "## 2. Quick Overview: Balance Plot\n", + "\n", + "Let's start with the most common visualization - a balance plot showing energy flows:" + ] }, { "cell_type": "code", + "execution_count": null, "id": "8", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:15.234587Z", - "start_time": "2025-12-13T14:13:14.950674Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "# Balance plot for the Heat bus - shows all inflows and outflows\n", "simple.statistics.plot.balance('Heat')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 7kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-...\n", - "Data variables:\n", - " Boiler(Heat) (time) float64 1kB -32.48 -29.31 ... -124.5 nan\n", - " ThermalStorage(Discharge) (time) float64 1kB -0.0 5.275e-13 ... nan\n", - " ThermalStorage(Charge) (time) float64 1kB 0.0 -3.748e-13 ... 100.0 nan\n", - " Office(Heat) (time) float64 1kB 32.48 29.31 ... 24.48 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Boiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QMD3U8WNBU89wHjXQkqFnk' ... '////8zwPW5+Ef5Hl/AAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAKPvjgg49iPby8nSEx72' ... 'AAAAAgvWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAUfPDBB19avby8nSEx72' ... 'AAAAAAANj//////1hAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Office(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Office(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Office(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QEDMU8WNBU89QGDXQkqFnk' ... 'AAAAA0QK7n4h/lezhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 4 + ] }, { "cell_type": "markdown", "id": "9", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-12T12:06:35.534937Z", - "start_time": "2025-12-12T12:06:35.496736Z" - } - }, - "source": "### Accessing Plot Data\n\nEvery plot returns a `PlotResult` with both the figure and underlying data. Use `.data.to_dataframe()` to get a pandas DataFrame:" + "metadata": {}, + "source": [ + "### Accessing Plot Data\n", + "\n", + "Every plot returns a `PlotResult` with both the figure and underlying data. Use `.data.to_dataframe()` to get a pandas DataFrame:" + ] }, { "cell_type": "code", + "execution_count": null, "id": "10", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:15.732085Z", - "start_time": "2025-12-13T14:13:15.577916Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "# Get plot result and access the underlying data\n", "result = simple.statistics.plot.balance('Heat', show=False)\n", @@ -582,2013 +138,127 @@ "# Convert to DataFrame for easy viewing/export\n", "df = result.data.to_dataframe()\n", "df.head(10)" - ], - "outputs": [ - { - "data": { - "text/plain": [ - " Boiler(Heat) ThermalStorage(Discharge) \\\n", - "time \n", - "2024-01-15 00:00:00 -32.483571 -0.000000e+00 \n", - "2024-01-15 01:00:00 -29.308678 5.275242e-13 \n", - "2024-01-15 02:00:00 -33.238443 -7.086767e-13 \n", - "2024-01-15 03:00:00 -101.411593 -3.516828e-13 \n", - "2024-01-15 04:00:00 -128.829233 -5.613288e-13 \n", - "2024-01-15 05:00:00 -128.829315 -7.033655e-13 \n", - "2024-01-15 06:00:00 -0.000000 -3.789606e+01 \n", - "2024-01-15 07:00:00 -0.000000 -8.383717e+01 \n", - "2024-01-15 08:00:00 -0.000000 -7.765263e+01 \n", - "2024-01-15 09:00:00 -0.000000 -8.271280e+01 \n", - "\n", - " ThermalStorage(Charge) Office(Heat) \n", - "time \n", - "2024-01-15 00:00:00 0.000000e+00 32.483571 \n", - "2024-01-15 01:00:00 -3.747575e-13 29.308678 \n", - "2024-01-15 02:00:00 8.792069e-13 33.238443 \n", - "2024-01-15 03:00:00 6.379644e+01 37.615149 \n", - "2024-01-15 04:00:00 1.000000e+02 28.829233 \n", - "2024-01-15 05:00:00 1.000000e+02 28.829315 \n", - "2024-01-15 06:00:00 1.055048e-12 37.896064 \n", - "2024-01-15 07:00:00 7.033655e-13 83.837174 \n", - "2024-01-15 08:00:00 -7.673862e-13 77.652628 \n", - "2024-01-15 09:00:00 7.033655e-13 82.712800 " - ], - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Boiler(Heat)ThermalStorage(Discharge)ThermalStorage(Charge)Office(Heat)
time
2024-01-15 00:00:00-32.483571-0.000000e+000.000000e+0032.483571
2024-01-15 01:00:00-29.3086785.275242e-13-3.747575e-1329.308678
2024-01-15 02:00:00-33.238443-7.086767e-138.792069e-1333.238443
2024-01-15 03:00:00-101.411593-3.516828e-136.379644e+0137.615149
2024-01-15 04:00:00-128.829233-5.613288e-131.000000e+0228.829233
2024-01-15 05:00:00-128.829315-7.033655e-131.000000e+0228.829315
2024-01-15 06:00:00-0.000000-3.789606e+011.055048e-1237.896064
2024-01-15 07:00:00-0.000000-8.383717e+017.033655e-1383.837174
2024-01-15 08:00:00-0.000000-7.765263e+01-7.673862e-1377.652628
2024-01-15 09:00:00-0.000000-8.271280e+017.033655e-1382.712800
\n", - "
" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 5 + ] }, { "cell_type": "markdown", "id": "11", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-12T12:06:35.617665Z", - "start_time": "2025-12-12T12:06:35.585811Z" - } - }, - "source": "### Energy Totals\n\nGet total energy by flow using `flow_hours`:" + "metadata": {}, + "source": [ + "### Energy Totals\n", + "\n", + "Get total energy by flow using `flow_hours`:" + ] }, { "cell_type": "code", + "execution_count": null, "id": "12", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:15.948455Z", - "start_time": "2025-12-13T14:13:15.924150Z" - } - }, - "source": "import pandas as pd\n\n# Total energy per flow\ntotals = {var: float(simple.statistics.flow_hours[var].sum()) for var in simple.statistics.flow_hours.data_vars}\n\npd.Series(totals, name='Energy [kWh]').to_frame().T", - "outputs": [ - { - "data": { - "text/plain": [ - " GasGrid(Gas) Boiler(Gas) Boiler(Heat) ThermalStorage(Charge) \\\n", - "Energy [kWh] 8936.665406 8936.665406 8221.732173 3457.182735 \n", - "\n", - " ThermalStorage(Discharge) Office(Heat) \n", - "Energy [kWh] 3242.788948 8007.338386 " - ], - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
GasGrid(Gas)Boiler(Gas)Boiler(Heat)ThermalStorage(Charge)ThermalStorage(Discharge)Office(Heat)
Energy [kWh]8936.6654068936.6654068221.7321733457.1827353242.7889488007.338386
\n", - "
" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 6 + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "# Total energy per flow\n", + "totals = {var: float(simple.statistics.flow_hours[var].sum()) for var in simple.statistics.flow_hours.data_vars}\n", + "\n", + "pd.Series(totals, name='Energy [kWh]').to_frame().T" + ] }, { "cell_type": "markdown", "id": "13", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-12T12:06:35.754890Z", - "start_time": "2025-12-12T12:06:35.735084Z" - } - }, - "source": "## 3. Time Series Plots" + "metadata": {}, + "source": [ + "## 3. Time Series Plots" + ] }, { "cell_type": "markdown", "id": "14", "metadata": {}, - "source": "### 3.1 Balance Plot\n\nShows inflows (positive) and outflows (negative) for a bus or component:" + "source": [ + "### 3.1 Balance Plot\n", + "\n", + "Shows inflows (positive) and outflows (negative) for a bus or component:" + ] }, { "cell_type": "code", + "execution_count": null, "id": "15", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:16.412850Z", - "start_time": "2025-12-13T14:13:16.305115Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "# Component balance (all flows of a component)\n", "simple.statistics.plot.balance('ThermalStorage')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 4kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-...\n", - "Data variables:\n", - " ThermalStorage(Charge) (time) float64 1kB -0.0 3.748e-13 ... -100.0 nan\n", - " ThermalStorage(Discharge) (time) float64 1kB 0.0 -5.275e-13 ... nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#D62728', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAUfPDBB19aPby8nSEx72' ... 'AAAAAAgNj//////1jAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#D62728', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAKPvjgg49ivby8nSEx72' ... 'AAAAAgPWP9SoFav2i9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'ThermalStorage (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 7 + ] }, { "cell_type": "markdown", "id": "16", "metadata": {}, - "source": "### 3.2 Carrier Balance\n\nShows all flows of a specific carrier across the entire system:" + "source": [ + "### 3.2 Carrier Balance\n", + "\n", + "Shows all flows of a specific carrier across the entire system:" + ] }, { "cell_type": "code", + "execution_count": null, "id": "17", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:16.630015Z", - "start_time": "2025-12-13T14:13:16.539450Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "complex_sys.statistics.plot.carrier_balance('heat')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 4kB\n", - "Dimensions: (time: 73)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 584B 2024-06-01 ... 2024-06-04\n", - "Data variables:\n", - " CHP(Heat) (time) float64 584B 0.0 0.0 0.0 0.0 ... 0.0 0.0 nan\n", - " HeatPump(Heat) (time) float64 584B 0.0 0.0 0.0 0.0 ... 0.0 0.0 nan\n", - " BackupBoiler(Heat) (time) float64 584B 20.0 26.01 25.43 ... 20.0 nan\n", - " HeatStorage(Discharge) (time) float64 584B 0.0 0.0 0.0 ... 0.0 nan\n", - " HeatStorage(Charge) (time) float64 584B -0.0 -0.0 -0.0 ... -0.0 nan\n", - " HeatDemand(Heat) (time) float64 584B -20.0 -26.01 ... -20.0 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=CHP(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'CHP(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatPump(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatPump(Heat)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatPump(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=BackupBoiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'BackupBoiler(Heat)',\n", - " 'marker': {'color': '#19D3F3', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'BackupBoiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAANEBcQRe1SgI6QOU9Gisjbz' ... 'Dnhlw6QAAAAAAAADRAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatStorage(Discharge)',\n", - " 'marker': {'color': '#FF6692', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'RO7MQ7PQAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatStorage(Charge)',\n", - " 'marker': {'color': '#FF6692', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'RO7MQ+vQAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatDemand(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatDemand(Heat)',\n", - " 'marker': {'color': '#B6E880', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatDemand(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAANMBcQRe1SgI6wOQ9Gisjbz' ... 'Dnhlw6wAAAAAAAADTAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat Balance (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 8 + ] }, { "cell_type": "code", + "execution_count": null, "id": "18", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:16.765682Z", - "start_time": "2025-12-13T14:13:16.660109Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "complex_sys.statistics.plot.carrier_balance('electricity')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 4kB\n", - "Dimensions: (time: 73)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 584B 2024-06-01 ... 2024-06-04\n", - "Data variables:\n", - " ElectricityImport(El) (time) float64 584B 23.49 20.59 21.13 ... 17.12 nan\n", - " CHP(El) (time) float64 584B 0.0 0.0 0.0 0.0 ... 0.0 0.0 nan\n", - " ElectricityExport(El) (time) float64 584B -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", - " HeatPump(El) (time) float64 584B -0.0 -0.0 -0.0 ... -0.0 -0.0 nan\n", - " ElDemand(El) (time) float64 584B -23.49 -20.59 ... -17.12 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=ElectricityImport(El)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ElectricityImport(El)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ElectricityImport(El)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('2HsanZJ8N0B/T9mTNpc0QB5Tg3x1IT' ... 'ANSU0wQAE5VciyHTFAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=CHP(El)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'CHP(El)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP(El)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ElectricityExport(El)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ElectricityExport(El)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ElectricityExport(El)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatPump(El)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatPump(El)',\n", - " 'marker': {'color': '#FFA15A', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatPump(El)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAAAAAAAAAAgAAAAAAAAA' ... 'AAAAAAgAAAAAAAAACAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ElDemand(El)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ElDemand(El)',\n", - " 'marker': {'color': '#FF97FF', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ElDemand(El)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-06-01T00:00:00.000000000', '2024-06-01T01:00:00.000000000',\n", - " '2024-06-01T02:00:00.000000000', '2024-06-01T03:00:00.000000000',\n", - " '2024-06-01T04:00:00.000000000', '2024-06-01T05:00:00.000000000',\n", - " '2024-06-01T06:00:00.000000000', '2024-06-01T07:00:00.000000000',\n", - " '2024-06-01T08:00:00.000000000', '2024-06-01T09:00:00.000000000',\n", - " '2024-06-01T10:00:00.000000000', '2024-06-01T11:00:00.000000000',\n", - " '2024-06-01T12:00:00.000000000', '2024-06-01T13:00:00.000000000',\n", - " '2024-06-01T14:00:00.000000000', '2024-06-01T15:00:00.000000000',\n", - " '2024-06-01T16:00:00.000000000', '2024-06-01T17:00:00.000000000',\n", - " '2024-06-01T18:00:00.000000000', '2024-06-01T19:00:00.000000000',\n", - " '2024-06-01T20:00:00.000000000', '2024-06-01T21:00:00.000000000',\n", - " '2024-06-01T22:00:00.000000000', '2024-06-01T23:00:00.000000000',\n", - " '2024-06-02T00:00:00.000000000', '2024-06-02T01:00:00.000000000',\n", - " '2024-06-02T02:00:00.000000000', '2024-06-02T03:00:00.000000000',\n", - " '2024-06-02T04:00:00.000000000', '2024-06-02T05:00:00.000000000',\n", - " '2024-06-02T06:00:00.000000000', '2024-06-02T07:00:00.000000000',\n", - " '2024-06-02T08:00:00.000000000', '2024-06-02T09:00:00.000000000',\n", - " '2024-06-02T10:00:00.000000000', '2024-06-02T11:00:00.000000000',\n", - " '2024-06-02T12:00:00.000000000', '2024-06-02T13:00:00.000000000',\n", - " '2024-06-02T14:00:00.000000000', '2024-06-02T15:00:00.000000000',\n", - " '2024-06-02T16:00:00.000000000', '2024-06-02T17:00:00.000000000',\n", - " '2024-06-02T18:00:00.000000000', '2024-06-02T19:00:00.000000000',\n", - " '2024-06-02T20:00:00.000000000', '2024-06-02T21:00:00.000000000',\n", - " '2024-06-02T22:00:00.000000000', '2024-06-02T23:00:00.000000000',\n", - " '2024-06-03T00:00:00.000000000', '2024-06-03T01:00:00.000000000',\n", - " '2024-06-03T02:00:00.000000000', '2024-06-03T03:00:00.000000000',\n", - " '2024-06-03T04:00:00.000000000', '2024-06-03T05:00:00.000000000',\n", - " '2024-06-03T06:00:00.000000000', '2024-06-03T07:00:00.000000000',\n", - " '2024-06-03T08:00:00.000000000', '2024-06-03T09:00:00.000000000',\n", - " '2024-06-03T10:00:00.000000000', '2024-06-03T11:00:00.000000000',\n", - " '2024-06-03T12:00:00.000000000', '2024-06-03T13:00:00.000000000',\n", - " '2024-06-03T14:00:00.000000000', '2024-06-03T15:00:00.000000000',\n", - " '2024-06-03T16:00:00.000000000', '2024-06-03T17:00:00.000000000',\n", - " '2024-06-03T18:00:00.000000000', '2024-06-03T19:00:00.000000000',\n", - " '2024-06-03T20:00:00.000000000', '2024-06-03T21:00:00.000000000',\n", - " '2024-06-03T22:00:00.000000000', '2024-06-03T23:00:00.000000000',\n", - " '2024-06-04T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('2HsanZJ8N8B/T9mTNpc0wB5Tg3x1IT' ... 'ANSU0wwAE5VciyHTHAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Electricity Balance (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 9 + ] }, { "cell_type": "markdown", "id": "19", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-12T12:06:36.266666Z", - "start_time": "2025-12-12T12:06:36.198686Z" - } - }, - "source": "### 3.3 Flow Rates\n\nPlot multiple flow rates together:" + "metadata": {}, + "source": [ + "### 3.3 Flow Rates\n", + "\n", + "Plot multiple flow rates together:" + ] }, { "cell_type": "code", + "execution_count": null, "id": "20", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:16.863735Z", - "start_time": "2025-12-13T14:13:16.783096Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "# All flows\n", "simple.statistics.plot.flows()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 9kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-...\n", - "Data variables:\n", - " GasGrid(Gas) (time) float64 1kB 35.31 31.86 ... 135.3 nan\n", - " Boiler(Gas) (time) float64 1kB 35.31 31.86 ... 135.3 nan\n", - " Boiler(Heat) (time) float64 1kB 32.48 29.31 ... 124.5 nan\n", - " ThermalStorage(Charge) (time) float64 1kB 0.0 -3.748e-13 ... 100.0 nan\n", - " ThermalStorage(Discharge) (time) float64 1kB 0.0 -5.275e-13 ... nan\n", - " Office(Heat) (time) float64 1kB 32.48 29.31 ... 24.48 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=GasGrid(Gas)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'GasGrid(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'GasGrid(Gas)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('GuEHDXSnQUD261BXdds/QI2yoZ56EE' ... 'SmN701QKxDuYXg6WBAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Boiler(Gas)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Gas)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Gas)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('GuEHDXSnQUD261BXdds/QI2yoZ56EE' ... 'SmN701QKxDuYXg6WBAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Boiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Heat)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QED3U8WNBU89QHjXQkqFnk' ... '////8zQPW5+Ef5Hl9AAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'line': {'color': '#AB63FA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAUfPDBB19avby8nSEx72' ... 'AAAAAAANj//////1hAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'line': {'color': '#FFA15A', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAKPvjgg49ivby8nSEx72' ... 'AAAAAgPWP9SoFav2i9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Office(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Office(Heat)',\n", - " 'line': {'color': '#19D3F3', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Office(Heat)',\n", - " 'showlegend': True,\n", - " 'type': 'scattergl',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QEDMU8WNBU89QGDXQkqFnk' ... 'AAAAA0QK7n4h/lezhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Flows (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 10 + ] }, { "cell_type": "code", + "execution_count": null, "id": "21", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:16.936035Z", - "start_time": "2025-12-13T14:13:16.880022Z" - } - }, + "metadata": {}, + "outputs": [], "source": [ "# Flows filtered by component\n", "simple.statistics.plot.flows(component='Boiler')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 4kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-01-22\n", - "Data variables:\n", - " Boiler(Gas) (time) float64 1kB 35.31 31.86 36.13 110.2 ... 21.74 135.3 nan\n", - " Boiler(Heat) (time) float64 1kB 32.48 29.31 33.24 101.4 ... 20.0 124.5 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Boiler(Gas)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Gas)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Gas)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('GuEHDXSnQUD261BXdds/QI2yoZ56EE' ... 'SmN701QKxDuYXg6WBAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Boiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QED3U8WNBU89QHjXQkqFnk' ... '////8zQPW5+Ef5Hl9AAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Flows (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 11 + ] }, { "cell_type": "markdown", - "id": "32", + "id": "22", "metadata": {}, "source": [ "### 3.4 Storage Plot\n", @@ -2598,346 +268,17 @@ }, { "cell_type": "code", - "id": "33", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.166751Z", - "start_time": "2025-12-13T14:13:16.985913Z" - } - }, + "execution_count": null, + "id": "23", + "metadata": {}, + "outputs": [], "source": [ "simple.statistics.plot.storage('ThermalStorage')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 5kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-...\n", - "Data variables:\n", - " ThermalStorage(Charge) (time) float64 1kB 0.0 -3.748e-13 ... 100.0 nan\n", - " ThermalStorage(Discharge) (time) float64 1kB -0.0 5.275e-13 ... nan\n", - " charge_state (time) float64 1kB 250.0 248.8 ... 102.5 200.0, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#D62728', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAUfPDBB19avby8nSEx72' ... 'AAAAAAANj//////1hAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#D62728', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAKPvjgg49iPby8nSEx72' ... 'AAAAAgvWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'time=%{x}
value=%{y}',\n", - " 'legendgroup': '',\n", - " 'line': {'color': 'black', 'width': 2},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'charge_state',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAABAb0AAAAAAABhvQDkzMzMz8G' ... 'LbxcFZQPDkQtTNoFlAAAAAAAAAaUA='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'ThermalStorage Operation (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}},\n", - " 'yaxis2': {'overlaying': 'y', 'showgrid': False, 'side': 'right', 'title': {'text': 'Charge State'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 12 + ] }, { "cell_type": "markdown", - "id": "34", + "id": "24", "metadata": {}, "source": [ "### 3.5 Charge States Plot\n", @@ -2947,146 +288,17 @@ }, { "cell_type": "code", - "id": "35", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.297322Z", - "start_time": "2025-12-13T14:13:17.214857Z" - } - }, + "execution_count": null, + "id": "25", + "metadata": {}, + "outputs": [], "source": [ "simple.statistics.plot.charge_states('ThermalStorage')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 3kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-01-22\n", - "Data variables:\n", - " ThermalStorage (time) float64 1kB 250.0 248.8 247.5 ... 103.0 102.5 200.0, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=ThermalStorage
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'ThermalStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAABAb0AAAAAAABhvQDkzMzMz8G' ... 'LbxcFZQPDkQtTNoFlAAAAAAAAAaUA='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Storage Charge States'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'Charge State'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 13 + ] }, { "cell_type": "markdown", - "id": "36", + "id": "26", "metadata": {}, "source": [ "## 4. Aggregated Plots" @@ -3094,7 +306,7 @@ }, { "cell_type": "markdown", - "id": "37", + "id": "27", "metadata": {}, "source": [ "### 4.1 Sizes Plot\n", @@ -3104,267 +316,17 @@ }, { "cell_type": "code", - "id": "38", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:17:12.906249Z", - "start_time": "2025-12-13T14:17:12.823893Z" - } - }, - "source": "multiperiod.statistics.plot.sizes()", - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 208B\n", - "Dimensions: (period: 3, scenario: 2)\n", - "Coordinates:\n", - " * period (period) int64 24B 2024 2025 2026\n", - " * scenario (scenario) scenario=high_demand
period=2024
Size=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#30123b', 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['Boiler(Heat)'], dtype=object),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': 'PvP9oLpQWkA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=high_demand
period=2025
Size=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#30123b', 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['Boiler(Heat)'], dtype=object),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': 'PvP9oLpQWkA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=high_demand
period=2026
Size=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#30123b', 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['Boiler(Heat)'], dtype=object),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': 'PvP9oLpQWkA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=low_demand
period=2024
Size=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#30123b', 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['Boiler(Heat)'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'PvP9oLpQWkA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=low_demand
period=2025
Size=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#30123b', 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['Boiler(Heat)'], dtype=object),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': 'PvP9oLpQWkA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=low_demand
period=2026
Size=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#30123b', 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['Boiler(Heat)'], dtype=object),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': 'PvP9oLpQWkA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=high_demand
period=2024
Size=%{y}',\n", - " 'legendgroup': 'ThermalStorage',\n", - " 'marker': {'color': '#7a0402', 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ThermalStorage'], dtype=object),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=high_demand
period=2025
Size=%{y}',\n", - " 'legendgroup': 'ThermalStorage',\n", - " 'marker': {'color': '#7a0402', 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ThermalStorage'], dtype=object),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=high_demand
period=2026
Size=%{y}',\n", - " 'legendgroup': 'ThermalStorage',\n", - " 'marker': {'color': '#7a0402', 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ThermalStorage'], dtype=object),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=low_demand
period=2024
Size=%{y}',\n", - " 'legendgroup': 'ThermalStorage',\n", - " 'marker': {'color': '#7a0402', 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ThermalStorage'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=low_demand
period=2025
Size=%{y}',\n", - " 'legendgroup': 'ThermalStorage',\n", - " 'marker': {'color': '#7a0402', 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ThermalStorage'], dtype=object),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': 'Flow=%{x}
scenario=low_demand
period=2026
Size=%{y}',\n", - " 'legendgroup': 'ThermalStorage',\n", - " 'marker': {'color': '#7a0402', 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ThermalStorage'], dtype=object),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y3'}],\n", - " 'layout': {'annotations': [{'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2024',\n", - " 'x': 0.15666666666666665,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2025',\n", - " 'x': 0.49,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2026',\n", - " 'x': 0.8233333333333333,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=low_demand',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.2425,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=high_demand',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.7575000000000001,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'}],\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'Flow'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Investment Sizes'},\n", - " 'xaxis': {'anchor': 'y',\n", - " 'categoryarray': [Boiler(Heat), ThermalStorage],\n", - " 'categoryorder': 'array',\n", - " 'domain': [0.0, 0.3133333333333333],\n", - " 'title': {'text': 'Flow'}},\n", - " 'xaxis2': {'anchor': 'y2',\n", - " 'categoryarray': [Boiler(Heat), ThermalStorage],\n", - " 'categoryorder': 'array',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'title': {'text': 'Flow'}},\n", - " 'xaxis3': {'anchor': 'y3',\n", - " 'categoryarray': [Boiler(Heat), ThermalStorage],\n", - " 'categoryorder': 'array',\n", - " 'domain': [0.6666666666666666, 0.98],\n", - " 'matches': 'x',\n", - " 'title': {'text': 'Flow'}},\n", - " 'xaxis4': {'anchor': 'y4', 'domain': [0.0, 0.3133333333333333], 'matches': 'x', 'showticklabels': False},\n", - " 'xaxis5': {'anchor': 'y5',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'showticklabels': False},\n", - " 'xaxis6': {'anchor': 'y6', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'showticklabels': False},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 0.485], 'title': {'text': 'Size'}},\n", - " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis4': {'anchor': 'x4', 'domain': [0.515, 1.0], 'matches': 'y', 'title': {'text': 'Size'}},\n", - " 'yaxis5': {'anchor': 'x5', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis6': {'anchor': 'x6', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 46, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 46 + "execution_count": null, + "id": "28", + "metadata": {}, + "outputs": [], + "source": [ + "multiperiod.statistics.plot.sizes()" + ] }, { "cell_type": "markdown", - "id": "39", + "id": "29", "metadata": {}, "source": [ "### 4.2 Effects Plot\n", @@ -3374,315 +336,38 @@ }, { "cell_type": "code", - "id": "40", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.440231Z", - "start_time": "2025-12-13T14:13:17.355184Z" - } - }, + "execution_count": null, + "id": "30", + "metadata": {}, + "outputs": [], "source": [ "simple.statistics.plot.effects(effect='costs')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 24B\n", - "Dimensions: (effect: 1, component: 1)\n", - "Coordinates:\n", - " * effect (effect) object 8B 'costs'\n", - " * component (component) object 8B 'GasGrid'\n", - "Data variables:\n", - " total (effect, component) float64 8B 558.8, figure=Figure({\n", - " 'data': [{'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'GasGrid',\n", - " 'marker': {'color': '#a4fc3b', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'GasGrid',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['GasGrid'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'sDkY5qR2gUA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'component'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'costs (total) by component'},\n", - " 'xaxis': {'anchor': 'y',\n", - " 'categoryarray': [GasGrid],\n", - " 'categoryorder': 'array',\n", - " 'domain': [0.0, 1.0],\n", - " 'title': {'text': 'component'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 15 + ] }, { "cell_type": "code", - "id": "41", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.547032Z", - "start_time": "2025-12-13T14:13:17.454197Z" - } - }, + "execution_count": null, + "id": "31", + "metadata": {}, + "outputs": [], "source": [ "# Multi-effect system: compare costs and CO2\n", "complex_sys.statistics.plot.effects(effect='costs')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 104B\n", - "Dimensions: (effect: 1, component: 6)\n", - "Coordinates:\n", - " * effect (effect) object 8B 'costs'\n", - " * component (component) object 48B 'CHP' ... 'HeatStorage'\n", - "Data variables:\n", - " total (effect, component) float64 48B 76.0 -297.4 102.9 420.8 0.0 0.0, figure=Figure({\n", - " 'data': [{'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'CHP',\n", - " 'marker': {'color': '#30123b', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['CHP'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAU0A=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'ElectricityExport',\n", - " 'marker': {'color': '#3c99f9', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ElectricityExport',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ElectricityExport'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'QuE7D7GWcsA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'ElectricityImport',\n", - " 'marker': {'color': '#49f683', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ElectricityImport',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ElectricityImport'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'mB7bhVm8WUA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'GasGrid',\n", - " 'marker': {'color': '#dfda36', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'GasGrid',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['GasGrid'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'VVvjiWRNekA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatPump',\n", - " 'marker': {'color': '#ee5a12', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatPump',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['HeatPump'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatStorage',\n", - " 'marker': {'color': '#7a0402', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['HeatStorage'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'component'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'costs (total) by component'},\n", - " 'xaxis': {'anchor': 'y',\n", - " 'categoryarray': [CHP, ElectricityExport,\n", - " ElectricityImport, GasGrid, HeatPump,\n", - " HeatStorage],\n", - " 'categoryorder': 'array',\n", - " 'domain': [0.0, 1.0],\n", - " 'title': {'text': 'component'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 16 + ] }, { "cell_type": "code", - "id": "42", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.616154Z", - "start_time": "2025-12-13T14:13:17.558702Z" - } - }, + "execution_count": null, + "id": "32", + "metadata": {}, + "outputs": [], "source": [ "complex_sys.statistics.plot.effects(effect='CO2')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 104B\n", - "Dimensions: (effect: 1, component: 6)\n", - "Coordinates:\n", - " * effect (effect) object 8B 'CO2'\n", - " * component (component) object 48B 'CHP' ... 'HeatStorage'\n", - "Data variables:\n", - " total (effect, component) float64 48B 0.0 0.0 255.1 1.403e+03 0.0 0.0, figure=Figure({\n", - " 'data': [{'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'CHP',\n", - " 'marker': {'color': '#30123b', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'CHP',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['CHP'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'ElectricityExport',\n", - " 'marker': {'color': '#3c99f9', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ElectricityExport',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ElectricityExport'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'ElectricityImport',\n", - " 'marker': {'color': '#49f683', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ElectricityImport',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['ElectricityImport'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'PuZR52/jb0A=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'GasGrid',\n", - " 'marker': {'color': '#dfda36', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'GasGrid',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['GasGrid'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'HMySHSnrlUA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatPump',\n", - " 'marker': {'color': '#ee5a12', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatPump',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['HeatPump'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'component=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatStorage',\n", - " 'marker': {'color': '#7a0402', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'HeatStorage',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['HeatStorage'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': 'AAAAAAAAAAA=', 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'component'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'CO2 (total) by component'},\n", - " 'xaxis': {'anchor': 'y',\n", - " 'categoryarray': [CHP, ElectricityExport,\n", - " ElectricityImport, GasGrid, HeatPump,\n", - " HeatStorage],\n", - " 'categoryorder': 'array',\n", - " 'domain': [0.0, 1.0],\n", - " 'title': {'text': 'component'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 17 + ] }, { "cell_type": "markdown", - "id": "43", + "id": "33", "metadata": {}, "source": [ "### 4.3 Duration Curve\n", @@ -3692,152 +377,28 @@ }, { "cell_type": "code", - "id": "44", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.659929Z", - "start_time": "2025-12-13T14:13:17.624261Z" - } - }, + "execution_count": null, + "id": "34", + "metadata": {}, + "outputs": [], "source": [ "simple.statistics.plot.duration_curve('Boiler(Heat)')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 3kB\n", - "Dimensions: (duration: 169)\n", - "Coordinates:\n", - " * duration (duration) int64 1kB 0 1 2 3 4 5 6 ... 163 164 165 166 167 168\n", - "Data variables:\n", - " Boiler(Heat) (duration) float64 1kB nan 137.8 134.1 133.1 ... 0.0 0.0 0.0, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Boiler(Heat)
duration=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': {'bdata': ('AAABAAIAAwAEAAUABgAHAAgACQAKAA' ... '4AnwCgAKEAogCjAKQApQCmAKcAqAA='),\n", - " 'dtype': 'i2'},\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('/////////39oQtzNVzphQLt+ZyCBw2' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Duration Curve'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'Timesteps'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 18 + ] }, { "cell_type": "code", - "id": "45", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.711351Z", - "start_time": "2025-12-13T14:13:17.670270Z" - } - }, + "execution_count": null, + "id": "35", + "metadata": {}, + "outputs": [], "source": [ "# Multiple variables\n", "complex_sys.statistics.plot.duration_curve(['CHP(Heat)', 'HeatPump(Heat)', 'BackupBoiler(Heat)'])" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 2kB\n", - "Dimensions: (duration: 73)\n", - "Coordinates:\n", - " * duration (duration) int64 584B 0 1 2 3 4 5 ... 67 68 69 70 71 72\n", - "Data variables:\n", - " CHP(Heat) (duration) float64 584B nan 80.88 80.62 ... 0.0 0.0 0.0\n", - " HeatPump(Heat) (duration) float64 584B nan 0.0 0.0 0.0 ... 0.0 0.0 0.0\n", - " BackupBoiler(Heat) (duration) float64 584B nan 63.11 ... -8.993e-15, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=CHP(Heat)
duration=%{x}
value=%{y}',\n", - " 'legendgroup': 'CHP(Heat)',\n", - " 'line': {'color': '#636EFA', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'CHP(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': {'bdata': ('AAECAwQFBgcICQoLDA0ODxAREhMUFR' ... 'Q1Njc4OTo7PD0+P0BBQkNERUZHSA=='),\n", - " 'dtype': 'i1'},\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('/////////39Gwcq9YjhUQOyIZIeOJ1' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=HeatPump(Heat)
duration=%{x}
value=%{y}',\n", - " 'legendgroup': 'HeatPump(Heat)',\n", - " 'line': {'color': '#EF553B', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'HeatPump(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': {'bdata': ('AAECAwQFBgcICQoLDA0ODxAREhMUFR' ... 'Q1Njc4OTo7PD0+P0BBQkNERUZHSA=='),\n", - " 'dtype': 'i1'},\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('/////////38AAAAAAAAAAAAAAAAAAA' ... 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAA='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=BackupBoiler(Heat)
duration=%{x}
value=%{y}',\n", - " 'legendgroup': 'BackupBoiler(Heat)',\n", - " 'line': {'color': '#00CC96', 'dash': 'solid'},\n", - " 'marker': {'symbol': 'circle'},\n", - " 'mode': 'lines',\n", - " 'name': 'BackupBoiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'type': 'scatter',\n", - " 'x': {'bdata': ('AAECAwQFBgcICQoLDA0ODxAREhMUFR' ... 'Q1Njc4OTo7PD0+P0BBQkNERUZHSA=='),\n", - " 'dtype': 'i1'},\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('/////////38h4dgzOo5PQDMD0m1cz0' ... 'AAAACwvAAAAAAAALi8AAAAAABABL0='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Duration Curve'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'Timesteps'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 19 + ] }, { "cell_type": "markdown", - "id": "46", + "id": "36", "metadata": {}, "source": [ "## 5. Heatmaps\n", @@ -3847,218 +408,40 @@ }, { "cell_type": "code", - "id": "47", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.799982Z", - "start_time": "2025-12-13T14:13:17.729391Z" - } - }, + "execution_count": null, + "id": "37", + "metadata": {}, + "outputs": [], "source": [ "# Auto-reshape based on data frequency\n", "simple.statistics.plot.heatmap('Boiler(Heat)')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 2kB\n", - "Dimensions: (timeframe: 8, timestep: 24)\n", - "Coordinates:\n", - " * timeframe (timeframe) object 64B '2024-01-15' '2024-01-16' ... '2024-01-22'\n", - " * timestep (timestep) object 192B '00:00' '01:00' ... '22:00' '23:00'\n", - "Data variables:\n", - " value (timestep, timeframe) float64 2kB 32.48 42.84 47.28 ... 124.5 nan, figure=Figure({\n", - " 'data': [{'coloraxis': 'coloraxis',\n", - " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
Boiler(Heat)|flow_rate: %{z}',\n", - " 'name': '0',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'yaxis': 'y',\n", - " 'z': {'bdata': ('5ZuWpeU9QED8nmEA1mtFQOR8bxYopE' ... '//////M0D1ufhH+R5fQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}}],\n", - " 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'Boiler(Heat)|flow_rate'}},\n", - " 'colorscale': [[0.0, '#30123b'],\n", - " [0.07142857142857142, '#4145ab'],\n", - " [0.14285714285714285, '#4675ed'],\n", - " [0.21428571428571427, '#39a2fc'],\n", - " [0.2857142857142857, '#1bcfd4'],\n", - " [0.35714285714285715, '#24eca6'],\n", - " [0.42857142857142855, '#61fc6c'], [0.5,\n", - " '#a4fc3b'], [0.5714285714285714,\n", - " '#d1e834'], [0.6428571428571429,\n", - " '#f3c63a'], [0.7142857142857143,\n", - " '#fe9b2d'], [0.7857142857142857,\n", - " '#f36315'], [0.8571428571428571,\n", - " '#d93806'], [0.9285714285714286,\n", - " '#b11901'], [1.0, '#7a0402']]},\n", - " 'margin': {'t': 60},\n", - " 'template': '...',\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'timeframe'}},\n", - " 'yaxis': {'anchor': 'x', 'autorange': 'reversed', 'domain': [0.0, 1.0], 'title': {'text': 'timestep'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 20 + ] }, { "cell_type": "code", - "id": "48", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.849042Z", - "start_time": "2025-12-13T14:13:17.808302Z" - } - }, + "execution_count": null, + "id": "38", + "metadata": {}, + "outputs": [], "source": [ "# Storage charge state heatmap\n", "simple.statistics.plot.heatmap('ThermalStorage')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 2kB\n", - "Dimensions: (timeframe: 8, timestep: 24)\n", - "Coordinates:\n", - " * timeframe (timeframe) object 64B '2024-01-15' '2024-01-16' ... '2024-01-22'\n", - " * timestep (timestep) object 192B '00:00' '01:00' ... '22:00' '23:00'\n", - "Data variables:\n", - " value (timestep, timeframe) float64 2kB 250.0 1.379e-14 ... 102.5 nan, figure=Figure({\n", - " 'data': [{'coloraxis': 'coloraxis',\n", - " 'hovertemplate': ('timeframe: %{x}
timestep: %' ... 'rge_state: %{z}'),\n", - " 'name': '0',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'yaxis': 'y',\n", - " 'z': {'bdata': ('AAAAAABAb0DkBdNVug0PPZGJ+Pa5Lj' ... 'AAAAAAAADw5ELUzaBZQAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}}],\n", - " 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'ThermalStorage|charge_state'}},\n", - " 'colorscale': [[0.0, '#30123b'],\n", - " [0.07142857142857142, '#4145ab'],\n", - " [0.14285714285714285, '#4675ed'],\n", - " [0.21428571428571427, '#39a2fc'],\n", - " [0.2857142857142857, '#1bcfd4'],\n", - " [0.35714285714285715, '#24eca6'],\n", - " [0.42857142857142855, '#61fc6c'], [0.5,\n", - " '#a4fc3b'], [0.5714285714285714,\n", - " '#d1e834'], [0.6428571428571429,\n", - " '#f3c63a'], [0.7142857142857143,\n", - " '#fe9b2d'], [0.7857142857142857,\n", - " '#f36315'], [0.8571428571428571,\n", - " '#d93806'], [0.9285714285714286,\n", - " '#b11901'], [1.0, '#7a0402']]},\n", - " 'margin': {'t': 60},\n", - " 'template': '...',\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'timeframe'}},\n", - " 'yaxis': {'anchor': 'x', 'autorange': 'reversed', 'domain': [0.0, 1.0], 'title': {'text': 'timestep'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 21 + ] }, { "cell_type": "code", - "id": "49", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.900833Z", - "start_time": "2025-12-13T14:13:17.858196Z" - } - }, + "execution_count": null, + "id": "39", + "metadata": {}, + "outputs": [], "source": [ "# Custom colorscale\n", "simple.statistics.plot.heatmap('Office(Heat)', color_continuous_scale='Blues', title='Heat Demand Pattern')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 2kB\n", - "Dimensions: (timeframe: 8, timestep: 24)\n", - "Coordinates:\n", - " * timeframe (timeframe) object 64B '2024-01-15' '2024-01-16' ... '2024-01-22'\n", - " * timestep (timestep) object 192B '00:00' '01:00' ... '22:00' '23:00'\n", - "Data variables:\n", - " value (timestep, timeframe) float64 2kB 32.48 27.28 31.72 ... 24.48 nan, figure=Figure({\n", - " 'data': [{'coloraxis': 'coloraxis',\n", - " 'hovertemplate': 'timeframe: %{x}
timestep: %{y}
Office(Heat)|flow_rate: %{z}',\n", - " 'name': '0',\n", - " 'type': 'heatmap',\n", - " 'x': array(['2024-01-15', '2024-01-16', '2024-01-17', '2024-01-18', '2024-01-19',\n", - " '2024-01-20', '2024-01-21', '2024-01-22'], dtype=object),\n", - " 'xaxis': 'x',\n", - " 'y': array(['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00',\n", - " '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00',\n", - " '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],\n", - " dtype=object),\n", - " 'yaxis': 'y',\n", - " 'z': {'bdata': ('5ZuWpeU9QEDqSDirMEc7QB8FVNfUtz' ... 'AAAAAANECu5+If5Xs4QAAAAAAAAPh/'),\n", - " 'dtype': 'f8',\n", - " 'shape': '24, 8'}}],\n", - " 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'Office(Heat)|flow_rate'}},\n", - " 'colorscale': [[0.0, 'rgb(247,251,255)'], [0.125,\n", - " 'rgb(222,235,247)'], [0.25,\n", - " 'rgb(198,219,239)'], [0.375,\n", - " 'rgb(158,202,225)'], [0.5,\n", - " 'rgb(107,174,214)'], [0.625,\n", - " 'rgb(66,146,198)'], [0.75,\n", - " 'rgb(33,113,181)'], [0.875,\n", - " 'rgb(8,81,156)'], [1.0,\n", - " 'rgb(8,48,107)']]},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat Demand Pattern'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'timeframe'}},\n", - " 'yaxis': {'anchor': 'x', 'autorange': 'reversed', 'domain': [0.0, 1.0], 'title': {'text': 'timestep'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 22 + ] }, { "cell_type": "markdown", - "id": "50", + "id": "40", "metadata": {}, "source": [ "## 6. Sankey Diagrams\n", @@ -4068,7 +451,7 @@ }, { "cell_type": "markdown", - "id": "51", + "id": "41", "metadata": {}, "source": [ "### 6.1 Flow Sankey\n", @@ -4078,134 +461,28 @@ }, { "cell_type": "code", - "id": "52", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.930662Z", - "start_time": "2025-12-13T14:13:17.908846Z" - } - }, + "execution_count": null, + "id": "42", + "metadata": {}, + "outputs": [], "source": [ "simple.statistics.plot.sankey.flows()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 1kB\n", - "Dimensions: (link: 6)\n", - "Coordinates:\n", - " * link (link) int64 48B 0 1 2 3 4 5\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 23 + ] }, { "cell_type": "code", - "id": "53", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.970954Z", - "start_time": "2025-12-13T14:13:17.939809Z" - } - }, + "execution_count": null, + "id": "43", + "metadata": {}, + "outputs": [], "source": [ "# Complex system with multiple carriers\n", "complex_sys.statistics.plot.sankey.flows()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 3kB\n", - "Dimensions: (link: 10)\n", - "Coordinates:\n", - " * link (link) int64 80B 0 1 2 3 4 5 6 7 8 9\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 24 + ] }, { "cell_type": "markdown", - "id": "54", + "id": "44", "metadata": {}, "source": [ "### 6.2 Sizes Sankey\n", @@ -4215,59 +492,17 @@ }, { "cell_type": "code", - "id": "55", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:17.993818Z", - "start_time": "2025-12-13T14:13:17.977340Z" - } - }, + "execution_count": null, + "id": "45", + "metadata": {}, + "outputs": [], "source": [ "multiperiod.statistics.plot.sankey.sizes()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 120B\n", - "Dimensions: (link: 1)\n", - "Coordinates:\n", - " * link (link) int64 8B 0\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 25 + ] }, { "cell_type": "markdown", - "id": "56", + "id": "46", "metadata": {}, "source": [ "### 6.3 Peak Flow Sankey\n", @@ -4277,67 +512,17 @@ }, { "cell_type": "code", - "id": "57", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.029364Z", - "start_time": "2025-12-13T14:13:18.001651Z" - } - }, + "execution_count": null, + "id": "47", + "metadata": {}, + "outputs": [], "source": [ "simple.statistics.plot.sankey.peak_flow()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 1kB\n", - "Dimensions: (link: 6)\n", - "Coordinates:\n", - " * link (link) int64 48B 0 1 2 3 4 5\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 26 + ] }, { "cell_type": "markdown", - "id": "58", + "id": "48", "metadata": {}, "source": [ "### 6.4 Effects Sankey\n", @@ -4347,109 +532,28 @@ }, { "cell_type": "code", - "id": "59", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.051137Z", - "start_time": "2025-12-13T14:13:18.037718Z" - } - }, + "execution_count": null, + "id": "49", + "metadata": {}, + "outputs": [], "source": [ "simple.statistics.plot.sankey.effects(select={'effect': 'costs'})" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 184B\n", - "Dimensions: (link: 1)\n", - "Coordinates:\n", - " * link (link) int64 8B 0\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 27 + ] }, { "cell_type": "code", - "id": "60", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.072870Z", - "start_time": "2025-12-13T14:13:18.057665Z" - } - }, + "execution_count": null, + "id": "50", + "metadata": {}, + "outputs": [], "source": [ "# CO2 allocation in complex system\n", "complex_sys.statistics.plot.sankey.effects(select={'effect': 'CO2'})" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 488B\n", - "Dimensions: (link: 2)\n", - "Coordinates:\n", - " * link (link) int64 16B 0 1\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 28 + ] }, { "cell_type": "markdown", - "id": "61", + "id": "51", "metadata": {}, "source": [ "### 6.5 Filtering with `select`\n", @@ -4459,62 +563,18 @@ }, { "cell_type": "code", - "id": "62", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.102271Z", - "start_time": "2025-12-13T14:13:18.087615Z" - } - }, + "execution_count": null, + "id": "52", + "metadata": {}, + "outputs": [], "source": [ "# Only heat flows\n", "complex_sys.statistics.plot.sankey.flows(select={'bus': 'Heat'})" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 576B\n", - "Dimensions: (link: 3)\n", - "Coordinates:\n", - " * link (link) int64 24B 0 1 2\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 29 + ] }, { "cell_type": "markdown", - "id": "63", + "id": "53", "metadata": {}, "source": [ "## 7. Topology Visualization\n", @@ -4524,7 +584,7 @@ }, { "cell_type": "markdown", - "id": "64", + "id": "54", "metadata": {}, "source": [ "### 7.1 Topology Plot\n", @@ -4534,317 +594,27 @@ }, { "cell_type": "code", - "id": "65", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.129663Z", - "start_time": "2025-12-13T14:13:18.109005Z" - } - }, + "execution_count": null, + "id": "55", + "metadata": {}, + "outputs": [], "source": [ "simple.topology.plot()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 1kB\n", - "Dimensions: (link: 6)\n", - "Coordinates:\n", - " * link (link) ',\n", - " 'label': [Boiler(Gas), Boiler(Heat), GasGrid(Gas),\n", - " Office(Heat), ThermalStorage(Charge),\n", - " ThermalStorage(Discharge)],\n", - " 'source': [5, 4, 0, 1, 1, 2],\n", - " 'target': [4, 1, 5, 3, 2, 1],\n", - " 'value': [1, 1, 1, 1, 1, 1]},\n", - " 'node': {'color': [#636EFA, #D62728, #00CC96, #AB63FA, #EF553B,\n", - " #1F77B4],\n", - " 'customdata': [Source('GasGrid')
outputs:
*\n", - " Flow('GasGrid(Gas)', bus='Gas', size=500.0,\n", - " effects_per_flow_hour={'costs': ~0.1}),\n", - " Bus('Heat', carrier='heat')
inputs:
\n", - " * Flow('Boiler(Heat)', bus='Heat',\n", - " size=150.0)
*\n", - " Flow('ThermalStorage(Discharge)', bus='Heat',\n", - " size=100.0,\n", - " status_parameters=StatusParameters())
\n", - " outputs:
*\n", - " Flow('ThermalStorage(Charge)', bus='Heat',\n", - " size=100.0,\n", - " status_parameters=StatusParameters())
\n", - " * Flow('Office(Heat)', bus='Heat', size=1.0,\n", - " fixed_relative_profile=20.0-92.3),\n", - " Storage('ThermalStorage',\n", - " capacity_in_flow_hours=500.0,\n", - " initial_charge_state=250.0,\n", - " minimal_final_charge_state=200.0,\n", - " eta_charge=1.0, eta_discharge=1.0,\n", - " relative_loss_per_hour=0.0)
inputs:
\n", - " * Flow('ThermalStorage(Charge)', bus='Heat',\n", - " size=100.0,\n", - " status_parameters=StatusParameters())
\n", - " outputs:
*\n", - " Flow('ThermalStorage(Discharge)', bus='Heat',\n", - " size=100.0,\n", - " status_parameters=StatusParameters()),\n", - " Sink('Office')
inputs:
*\n", - " Flow('Office(Heat)', bus='Heat', size=1.0,\n", - " fixed_relative_profile=20.0-92.3),\n", - " Boiler('Boiler', thermal_efficiency=0.9,\n", - " fuel_flow=Flow('Boiler(Gas)', bus='Gas'),\n", - " thermal_flow=Flow('Boiler(Heat)', bus='Heat',\n", - " size=150.0))
inputs:
*\n", - " Flow('Boiler(Gas)', bus='Gas')
\n", - " outputs:
* Flow('Boiler(Heat)',\n", - " bus='Heat', size=150.0), Bus('Gas',\n", - " carrier='gas')
inputs:
*\n", - " Flow('GasGrid(Gas)', bus='Gas', size=500.0,\n", - " effects_per_flow_hour={'costs': ~0.1})
\n", - " outputs:
* Flow('Boiler(Gas)',\n", - " bus='Gas')],\n", - " 'hovertemplate': '%{customdata}',\n", - " 'label': [GasGrid, Heat, ThermalStorage, Office, Boiler,\n", - " Gas],\n", - " 'line': {'color': 'black', 'width': 0.5},\n", - " 'pad': 15,\n", - " 'thickness': 20},\n", - " 'type': 'sankey'}],\n", - " 'layout': {'template': '...', 'title': {'text': 'Flow System Topology'}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 30 + ] }, { "cell_type": "code", - "id": "66", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.157403Z", - "start_time": "2025-12-13T14:13:18.136357Z" - } - }, + "execution_count": null, + "id": "56", + "metadata": {}, + "outputs": [], "source": [ "complex_sys.topology.plot(title='Complex System Topology')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 3kB\n", - "Dimensions: (link: 14)\n", - "Coordinates:\n", - " * link (link) ',\n", - " 'label': [BackupBoiler(Gas), BackupBoiler(Heat), CHP(El),\n", - " CHP(Gas), CHP(Heat), ElDemand(El),\n", - " ElectricityExport(El), ElectricityImport(El),\n", - " GasGrid(Gas), HeatDemand(Heat), HeatPump(El),\n", - " HeatPump(Heat), HeatStorage(Charge),\n", - " HeatStorage(Discharge)],\n", - " 'source': [11, 1, 9, 11, 9, 0, 0, 10, 2, 6, 0, 3, 6, 8],\n", - " 'target': [1, 6, 0, 9, 6, 4, 5, 0, 11, 7, 3, 6, 8, 6],\n", - " 'value': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]},\n", - " 'node': {'color': [#FECB52, #19D3F3, #636EFA, #FFA15A, #FF97FF,\n", - " #00CC96, #D62728, #B6E880, #FF6692, #AB63FA,\n", - " #EF553B, #1F77B4],\n", - " 'customdata': [Bus('Electricity',\n", - " carrier='electricity')
inputs:
*\n", - " Flow('ElectricityImport(El)',\n", - " bus='Electricity', size=100.0,\n", - " effects_per_flow_hour={'costs': 0.1-0.2,\n", - " 'CO2': 0.3-0.4})
* Flow('CHP(El)',\n", - " bus='Electricity', size=80.0,\n", - " status_parameters=StatusParameters())
\n", - " outputs:
*\n", - " Flow('ElectricityExport(El)',\n", - " bus='Electricity', size=50.0,\n", - " effects_per_flow_hour={'costs': -0.2--\n", - " 0.1})
* Flow('HeatPump(El)',\n", - " bus='Electricity')
*\n", - " Flow('ElDemand(El)', bus='Electricity',\n", - " size=1.0, fixed_relative_profile=10.0-42.3),\n", - " Boiler('BackupBoiler',\n", - " thermal_efficiency=0.9,\n", - " fuel_flow=Flow('BackupBoiler(Gas)',\n", - " bus='Gas'),\n", - " thermal_flow=Flow('BackupBoiler(Heat)',\n", - " bus='Heat', size=80.0))
inputs:
*\n", - " Flow('BackupBoiler(Gas)', bus='Gas')
\n", - " outputs:
* Flow('BackupBoiler(Heat)',\n", - " bus='Heat', size=80.0), Source('GasGrid')
\n", - " outputs:
* Flow('GasGrid(Gas)',\n", - " bus='Gas', size=300.0,\n", - " effects_per_flow_hour={'costs': 0.1, 'CO2':\n", - " 0.2}), HeatPump('HeatPump', cop=3.5,\n", - " electrical_flow=Flow('HeatPump(El)',\n", - " bus='Electricity'),\n", - " thermal_flow=Flow('HeatPump(Heat)',\n", - " bus='Heat', size=InvestP...)
inputs:
\n", - " * Flow('HeatPump(El)', bus='Electricity')
\n", - " outputs:
* Flow('HeatPump(Heat)',\n", - " bus='Heat',\n", - " size=InvestParameters(minimum_size=0.0,\n", - " maximum_size...), Sink('ElDemand')
\n", - " inputs:
* Flow('ElDemand(El)',\n", - " bus='Electricity', size=1.0,\n", - " fixed_relative_profile=10.0-42.3),\n", - " Sink('ElectricityExport')
inputs:
\n", - " * Flow('ElectricityExport(El)',\n", - " bus='Electricity', size=50.0,\n", - " effects_per_flow_hour={'costs': -0.2--0.1}),\n", - " Bus('Heat', carrier='heat')
inputs:
\n", - " * Flow('CHP(Heat)', bus='Heat', size=85.0,\n", - " status_parameters=StatusParameters())
\n", - " * Flow('HeatPump(Heat)', bus='Heat',\n", - " size=InvestParameters(minimum_size=0.0,\n", - " maximum_size...)
*\n", - " Flow('BackupBoiler(Heat)', bus='Heat',\n", - " size=80.0)
*\n", - " Flow('HeatStorage(Discharge)', bus='Heat',\n", - " size=50.0,\n", - " status_parameters=StatusParameters())
\n", - " outputs:
* Flow('HeatStorage(Charge)',\n", - " bus='Heat', size=50.0,\n", - " status_parameters=StatusParameters())
\n", - " * Flow('HeatDemand(Heat)', bus='Heat',\n", - " size=1.0, fixed_relative_profile=20.0-87.5),\n", - " Sink('HeatDemand')
inputs:
*\n", - " Flow('HeatDemand(Heat)', bus='Heat',\n", - " size=1.0, fixed_relative_profile=20.0-87.5),\n", - " Storage('HeatStorage', capacity_in_flow_hours\n", - " =InvestParameters(minimum_size=0.0,\n", - " maximum_size..., eta_charge=1.0,\n", - " eta_discharge=1.0)
inputs:
*\n", - " Flow('HeatStorage(Charge)', bus='Heat',\n", - " size=50.0,\n", - " status_parameters=StatusParameters())
\n", - " outputs:
*\n", - " Flow('HeatStorage(Discharge)', bus='Heat',\n", - " size=50.0,\n", - " status_parameters=StatusParameters()),\n", - " LinearConverter('CHP', status_parameters=Stat\n", - " usParameters(effects_per_active_hour={'cost..\n", - " ., piecewise_conversion=PiecewiseConversion(p\n", - " iecewises={'Gas': Piecewis...)
\n", - " inputs:
* Flow('CHP(Gas)', bus='Gas',\n", - " size=200.0,\n", - " status_parameters=StatusParameters())
\n", - " outputs:
* Flow('CHP(El)',\n", - " bus='Electricity', size=80.0,\n", - " status_parameters=StatusParameters())
\n", - " * Flow('CHP(Heat)', bus='Heat', size=85.0,\n", - " status_parameters=StatusParameters()),\n", - " Source('ElectricityImport')
outputs:
\n", - " * Flow('ElectricityImport(El)',\n", - " bus='Electricity', size=100.0,\n", - " effects_per_flow_hour={'costs': 0.1-0.2,\n", - " 'CO2': 0.3-0.4}), Bus('Gas',\n", - " carrier='gas')
inputs:
*\n", - " Flow('GasGrid(Gas)', bus='Gas', size=300.0,\n", - " effects_per_flow_hour={'costs': 0.1, 'CO2':\n", - " 0.2})
outputs:
* Flow('CHP(Gas)',\n", - " bus='Gas', size=200.0,\n", - " status_parameters=StatusParameters())
\n", - " * Flow('BackupBoiler(Gas)', bus='Gas')],\n", - " 'hovertemplate': '%{customdata}',\n", - " 'label': [Electricity, BackupBoiler, GasGrid, HeatPump,\n", - " ElDemand, ElectricityExport, Heat, HeatDemand,\n", - " HeatStorage, CHP, ElectricityImport, Gas],\n", - " 'line': {'color': 'black', 'width': 0.5},\n", - " 'pad': 15,\n", - " 'thickness': 20},\n", - " 'type': 'sankey'}],\n", - " 'layout': {'template': '...', 'title': {'text': 'Complex System Topology'}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 31 + ] }, { "cell_type": "markdown", - "id": "67", + "id": "57", "metadata": {}, "source": [ "### 7.2 Topology Info\n", @@ -4854,13 +624,10 @@ }, { "cell_type": "code", - "id": "68", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.168871Z", - "start_time": "2025-12-13T14:13:18.165083Z" - } - }, + "execution_count": null, + "id": "58", + "metadata": {}, + "outputs": [], "source": [ "nodes, edges = simple.topology.infos()\n", "\n", @@ -4871,35 +638,11 @@ "print('\\nEdges (flows):')\n", "for label, info in edges.items():\n", " print(f' {info[\"start\"]} -> {info[\"end\"]}: {label}')" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Nodes:\n", - " GasGrid: Component\n", - " Boiler: Component\n", - " ThermalStorage: Component\n", - " Office: Component\n", - " Gas: Bus\n", - " Heat: Bus\n", - "\n", - "Edges (flows):\n", - " Gas -> Boiler: Boiler(Gas)\n", - " Boiler -> Heat: Boiler(Heat)\n", - " GasGrid -> Gas: GasGrid(Gas)\n", - " Heat -> Office: Office(Heat)\n", - " Heat -> ThermalStorage: ThermalStorage(Charge)\n", - " ThermalStorage -> Heat: ThermalStorage(Discharge)\n" - ] - } - ], - "execution_count": 32 + ] }, { "cell_type": "markdown", - "id": "69", + "id": "59", "metadata": {}, "source": [ "## 8. Multi-Period/Scenario Data\n", @@ -4909,1289 +652,53 @@ }, { "cell_type": "code", - "id": "70", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.194588Z", - "start_time": "2025-12-13T14:13:18.191374Z" - } - }, + "execution_count": null, + "id": "60", + "metadata": {}, + "outputs": [], "source": [ "print('Multiperiod system dimensions:')\n", "print(f' Periods: {list(multiperiod.periods)}')\n", "print(f' Scenarios: {list(multiperiod.scenarios)}')\n", "print(f' Solution dims: {dict(multiperiod.solution.sizes)}')" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Multiperiod system dimensions:\n", - " Periods: [2024, 2025, 2026]\n", - " Scenarios: ['high_demand', 'low_demand']\n", - " Solution dims: {'scenario': 2, 'period': 3, 'time': 49}\n" - ] - } - ], - "execution_count": 33 + ] }, { "cell_type": "code", - "id": "71", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.325331Z", - "start_time": "2025-12-13T14:13:18.199791Z" - } - }, + "execution_count": null, + "id": "61", + "metadata": {}, + "outputs": [], "source": [ "# Balance plot with faceting by scenario\n", "multiperiod.statistics.plot.balance('Heat')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 10kB\n", - "Dimensions: (time: 49, period: 3, scenario: 2)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 392B 2024-01-01 ... 2024...\n", - " * period (period) int64 24B 2024 2025 2026\n", - " * scenario (scenario) scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5JuWpeU9RsDiqeLGgqdEwF3XQkqFnk' ... 'rxMNlDwFu20eeOpEfAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=Boiler(Heat)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5JuWpeU9RsDiqeLGgqdEwF3XQkqFnk' ... 'rxMNlDwFu20eeOpEfAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=Boiler(Heat)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5JuWpeU9RsDiqeLGgqdEwFvXQkqFnk' ... 'rxMNlDwFy20eeOpEfAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=Boiler(Heat)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('EgPMGubHPsD7i30z/HU4wBwgRYDluD' ... 'Vm3JI8wDayyUAFXDnAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=Boiler(Heat)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('EgPMGubHPsD7i30z/HU4wBwgRYDluD' ... 'Vm3JI8wDayyUAFXDnAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=Boiler(Heat)
scena' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('EgPMGubHPsD7i30z/HU4wBwgRYDluD' ... 'Vm3JI8wDayyUAFXDnAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Discha' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('iAK1fqVASD1j/UqBWr9nPQo++OCDj2' ... 'jgg89hPWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Discha' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('iAK1fqVASD1j/UqBWr9nPQo++OCDj2' ... 'qBWr9oPWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Discha' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('iAK1fqVASD1j/UqBWr9oPby8nSExr2' ... 'qBWr9oPQo++OCDz2E9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Discha' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIC3nSExb8dkPbedITFvx2' ... 'Exb8dkPbedITFvx2Q9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Discha' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('AAAAAAAAAIC3nSExb8dkPbedITFvx2' ... 'Exb8dkPbedITFvx2Q9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Discha' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('AAAAAAAAAIC3nSExb8dkPbedITFvx2' ... 'Exb8dkPbedITFvp2U9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Charge' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('iAK1fqVASb1j/UqBWr9ovQo++OCDT2' ... 'jgg49ivWP9SoFav2m9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Charge' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('iAK1fqVASb1j/UqBWr9ovQo++OCDT2' ... 'qBWr9pvWP9SoFav2m9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Charge' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('iAK1fqVASb1j/UqBWr9pvby8nSEx72' ... 'qBWr9pvQo++OCDj2K9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Charge' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAC3nSExb6dlvbedITFvp2' ... 'Exb6dlvbedITFvp2W9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Charge' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('AAAAAAAAAAC3nSExb6dlvbedITFvp2' ... 'Exb6dlvbedITFvp2W9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=ThermalStorage(Charge' ... '}
value=%{y}'),\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('AAAAAAAAAAC3nSExb6dlvbedITFvp2' ... 'Exb6dlvbedITFvh2a9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'},\n", - " {'hovertemplate': ('variable=Building(Heat)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Building(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Building(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x4',\n", - " 'y': {'bdata': ('5ZuWpeU9RkDmqeLGgqdEQGDXQkqFnk' ... 'rxMNlDQF+20eeOpEdAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y4'},\n", - " {'hovertemplate': ('variable=Building(Heat)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Building(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Building(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x5',\n", - " 'y': {'bdata': ('5ZuWpeU9RkDmqeLGgqdEQGDXQkqFnk' ... 'rxMNlDQF+20eeOpEdAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y5'},\n", - " {'hovertemplate': ('variable=Building(Heat)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Building(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Building(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x6',\n", - " 'y': {'bdata': ('5ZuWpeU9RkDmqeLGgqdEQGDXQkqFnk' ... 'rxMNlDQF+20eeOpEdAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y6'},\n", - " {'hovertemplate': ('variable=Building(Heat)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Building(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Building(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('EgPMGubHPkACjH0z/HU4QCMgRYDluD' ... 'Vm3JI8QD2yyUAFXDlAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': ('variable=Building(Heat)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Building(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Building(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x2',\n", - " 'y': {'bdata': ('EgPMGubHPkACjH0z/HU4QCMgRYDluD' ... 'Vm3JI8QD2yyUAFXDlAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y2'},\n", - " {'hovertemplate': ('variable=Building(Heat)
sce' ... '}
value=%{y}'),\n", - " 'legendgroup': 'Building(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Building(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': False,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x3',\n", - " 'y': {'bdata': ('EgPMGubHPkACjH0z/HU4QCMgRYDluD' ... 'Vm3JI8QD2yyUAFXDlAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y3'}],\n", - " 'layout': {'annotations': [{'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2024',\n", - " 'x': 0.15666666666666665,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2025',\n", - " 'x': 0.49,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'period=2026',\n", - " 'x': 0.8233333333333333,\n", - " 'xanchor': 'center',\n", - " 'xref': 'paper',\n", - " 'y': 1.0,\n", - " 'yanchor': 'bottom',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=low_demand',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.2425,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'},\n", - " {'font': {},\n", - " 'showarrow': False,\n", - " 'text': 'scenario=high_demand',\n", - " 'textangle': 90,\n", - " 'x': 0.98,\n", - " 'xanchor': 'left',\n", - " 'xref': 'paper',\n", - " 'y': 0.7575000000000001,\n", - " 'yanchor': 'middle',\n", - " 'yref': 'paper'}],\n", - " 'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 0.3133333333333333], 'title': {'text': 'time'}},\n", - " 'xaxis2': {'anchor': 'y2',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'title': {'text': 'time'}},\n", - " 'xaxis3': {'anchor': 'y3', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'title': {'text': 'time'}},\n", - " 'xaxis4': {'anchor': 'y4', 'domain': [0.0, 0.3133333333333333], 'matches': 'x', 'showticklabels': False},\n", - " 'xaxis5': {'anchor': 'y5',\n", - " 'domain': [0.3333333333333333, 0.6466666666666666],\n", - " 'matches': 'x',\n", - " 'showticklabels': False},\n", - " 'xaxis6': {'anchor': 'y6', 'domain': [0.6666666666666666, 0.98], 'matches': 'x', 'showticklabels': False},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 0.485], 'title': {'text': 'value'}},\n", - " 'yaxis2': {'anchor': 'x2', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis3': {'anchor': 'x3', 'domain': [0.0, 0.485], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis4': {'anchor': 'x4', 'domain': [0.515, 1.0], 'matches': 'y', 'title': {'text': 'value'}},\n", - " 'yaxis5': {'anchor': 'x5', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False},\n", - " 'yaxis6': {'anchor': 'x6', 'domain': [0.515, 1.0], 'matches': 'y', 'showticklabels': False}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 34 + ] }, { "cell_type": "code", - "id": "72", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.395048Z", - "start_time": "2025-12-13T14:13:18.341709Z" - } - }, + "execution_count": null, + "id": "62", + "metadata": {}, + "outputs": [], "source": [ "# Filter to specific scenario/period\n", "multiperiod.statistics.plot.balance('Heat', select={'scenario': 'high_demand', 'period': 2024})" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 2kB\n", - "Dimensions: (time: 49)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 392B 2024-01-01 ... 2024...\n", - "Data variables:\n", - " Boiler(Heat) (time) float64 392B -44.48 -41.31 ... -47.29 nan\n", - " ThermalStorage(Discharge) (time) float64 392B 1.723e-13 6.749e-13 ... nan\n", - " ThermalStorage(Charge) (time) float64 392B -1.794e-13 -7.034e-13 ... nan\n", - " Building(Heat) (time) float64 392B 44.48 41.31 ... 47.29 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Boiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#EF553B', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5JuWpeU9RsDiqeLGgqdEwF3XQkqFnk' ... 'rxMNlDwFu20eeOpEfAAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('iAK1fqVASD1j/UqBWr9nPQo++OCDj2' ... 'jgg89hPWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#00CC96', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('iAK1fqVASb1j/UqBWr9ovQo++OCDT2' ... 'jgg49ivWP9SoFav2m9AAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Building(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Building(Heat)',\n", - " 'marker': {'color': '#AB63FA', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Building(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-01T00:00:00.000000000', '2024-01-01T01:00:00.000000000',\n", - " '2024-01-01T02:00:00.000000000', '2024-01-01T03:00:00.000000000',\n", - " '2024-01-01T04:00:00.000000000', '2024-01-01T05:00:00.000000000',\n", - " '2024-01-01T06:00:00.000000000', '2024-01-01T07:00:00.000000000',\n", - " '2024-01-01T08:00:00.000000000', '2024-01-01T09:00:00.000000000',\n", - " '2024-01-01T10:00:00.000000000', '2024-01-01T11:00:00.000000000',\n", - " '2024-01-01T12:00:00.000000000', '2024-01-01T13:00:00.000000000',\n", - " '2024-01-01T14:00:00.000000000', '2024-01-01T15:00:00.000000000',\n", - " '2024-01-01T16:00:00.000000000', '2024-01-01T17:00:00.000000000',\n", - " '2024-01-01T18:00:00.000000000', '2024-01-01T19:00:00.000000000',\n", - " '2024-01-01T20:00:00.000000000', '2024-01-01T21:00:00.000000000',\n", - " '2024-01-01T22:00:00.000000000', '2024-01-01T23:00:00.000000000',\n", - " '2024-01-02T00:00:00.000000000', '2024-01-02T01:00:00.000000000',\n", - " '2024-01-02T02:00:00.000000000', '2024-01-02T03:00:00.000000000',\n", - " '2024-01-02T04:00:00.000000000', '2024-01-02T05:00:00.000000000',\n", - " '2024-01-02T06:00:00.000000000', '2024-01-02T07:00:00.000000000',\n", - " '2024-01-02T08:00:00.000000000', '2024-01-02T09:00:00.000000000',\n", - " '2024-01-02T10:00:00.000000000', '2024-01-02T11:00:00.000000000',\n", - " '2024-01-02T12:00:00.000000000', '2024-01-02T13:00:00.000000000',\n", - " '2024-01-02T14:00:00.000000000', '2024-01-02T15:00:00.000000000',\n", - " '2024-01-02T16:00:00.000000000', '2024-01-02T17:00:00.000000000',\n", - " '2024-01-02T18:00:00.000000000', '2024-01-02T19:00:00.000000000',\n", - " '2024-01-02T20:00:00.000000000', '2024-01-02T21:00:00.000000000',\n", - " '2024-01-02T22:00:00.000000000', '2024-01-02T23:00:00.000000000',\n", - " '2024-01-03T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9RkDmqeLGgqdEQGDXQkqFnk' ... 'rxMNlDQF+20eeOpEdAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 35 + ] }, { "cell_type": "code", - "id": "73", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.481894Z", - "start_time": "2025-12-13T14:13:18.459661Z" - } - }, + "execution_count": null, + "id": "63", + "metadata": {}, + "outputs": [], "source": [ "# Sankey aggregates across all dimensions by default\n", "multiperiod.statistics.plot.sankey.flows()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 592B\n", - "Dimensions: (link: 4)\n", - "Coordinates:\n", - " * link (link) int64 32B 0 1 2 3\n", - " source (link) \n", - "
" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 36 + ] }, { "cell_type": "markdown", - "id": "74", + "id": "64", "metadata": {}, "source": [ "## 9. Color Customization\n", @@ -6201,885 +708,32 @@ }, { "cell_type": "code", - "id": "75", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.553613Z", - "start_time": "2025-12-13T14:13:18.488703Z" - } - }, + "execution_count": null, + "id": "65", + "metadata": {}, + "outputs": [], "source": [ "# Using a colorscale name\n", "simple.statistics.plot.balance('Heat', colors='Set2')" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 7kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-...\n", - "Data variables:\n", - " Boiler(Heat) (time) float64 1kB -32.48 -29.31 ... -124.5 nan\n", - " ThermalStorage(Discharge) (time) float64 1kB -0.0 5.275e-13 ... nan\n", - " ThermalStorage(Charge) (time) float64 1kB 0.0 -3.748e-13 ... 100.0 nan\n", - " Office(Heat) (time) float64 1kB 32.48 29.31 ... 24.48 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Boiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#66c2a5', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QMD3U8WNBU89wHjXQkqFnk' ... '////8zwPW5+Ef5Hl/AAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#fc8d62', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAKPvjgg49iPby8nSEx72' ... 'AAAAAgvWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#8da0cb', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAUfPDBB19avby8nSEx72' ... 'AAAAAAANj//////1hAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Office(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Office(Heat)',\n", - " 'marker': {'color': '#e78ac3', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Office(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QEDMU8WNBU89QGDXQkqFnk' ... 'AAAAA0QK7n4h/lezhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 37 + ] }, { "cell_type": "code", - "id": "76", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.619651Z", - "start_time": "2025-12-13T14:13:18.562286Z" - } - }, + "execution_count": null, + "id": "66", + "metadata": {}, + "outputs": [], "source": [ "# Using a list of colors\n", "simple.statistics.plot.balance('Heat', colors=['#e41a1c', '#377eb8', '#4daf4a', '#984ea3'])" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 7kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-...\n", - "Data variables:\n", - " Boiler(Heat) (time) float64 1kB -32.48 -29.31 ... -124.5 nan\n", - " ThermalStorage(Discharge) (time) float64 1kB -0.0 5.275e-13 ... nan\n", - " ThermalStorage(Charge) (time) float64 1kB 0.0 -3.748e-13 ... 100.0 nan\n", - " Office(Heat) (time) float64 1kB 32.48 29.31 ... 24.48 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Boiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': '#e41a1c', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QMD3U8WNBU89wHjXQkqFnk' ... '////8zwPW5+Ef5Hl/AAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': '#377eb8', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAKPvjgg49iPby8nSEx72' ... 'AAAAAgvWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': '#4daf4a', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAUfPDBB19avby8nSEx72' ... 'AAAAAAANj//////1hAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Office(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Office(Heat)',\n", - " 'marker': {'color': '#984ea3', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Office(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QEDMU8WNBU89QGDXQkqFnk' ... 'AAAAA0QK7n4h/lezhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 38 + ] }, { "cell_type": "code", - "id": "77", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.672843Z", - "start_time": "2025-12-13T14:13:18.628572Z" - } - }, + "execution_count": null, + "id": "67", + "metadata": {}, + "outputs": [], "source": [ "# Using a dictionary for specific labels\n", "simple.statistics.plot.balance(\n", @@ -7091,433 +745,11 @@ " 'Office(Heat)': 'forestgreen',\n", " },\n", ")" - ], - "outputs": [ - { - "data": { - "text/plain": [ - "PlotResult(data= Size: 7kB\n", - "Dimensions: (time: 169)\n", - "Coordinates:\n", - " * time (time) datetime64[ns] 1kB 2024-01-15 ... 2024-...\n", - "Data variables:\n", - " Boiler(Heat) (time) float64 1kB -32.48 -29.31 ... -124.5 nan\n", - " ThermalStorage(Discharge) (time) float64 1kB -0.0 5.275e-13 ... nan\n", - " ThermalStorage(Charge) (time) float64 1kB 0.0 -3.748e-13 ... 100.0 nan\n", - " Office(Heat) (time) float64 1kB 32.48 29.31 ... 24.48 nan, figure=Figure({\n", - " 'data': [{'hovertemplate': 'variable=Boiler(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Boiler(Heat)',\n", - " 'marker': {'color': 'orangered', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Boiler(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QMD3U8WNBU89wHjXQkqFnk' ... '////8zwPW5+Ef5Hl/AAAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Discharge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Discharge)',\n", - " 'marker': {'color': 'lightblue', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Discharge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAIAKPvjgg49iPby8nSEx72' ... 'AAAAAgvWP9SoFav2g9AAAAAAAA+P8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=ThermalStorage(Charge)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'ThermalStorage(Charge)',\n", - " 'marker': {'color': 'steelblue', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'ThermalStorage(Charge)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('AAAAAAAAAAAUfPDBB19avby8nSEx72' ... 'AAAAAAANj//////1hAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'},\n", - " {'hovertemplate': 'variable=Office(Heat)
time=%{x}
value=%{y}',\n", - " 'legendgroup': 'Office(Heat)',\n", - " 'marker': {'color': 'forestgreen', 'line': {'width': 0}, 'pattern': {'shape': ''}},\n", - " 'name': 'Office(Heat)',\n", - " 'orientation': 'v',\n", - " 'showlegend': True,\n", - " 'textposition': 'auto',\n", - " 'type': 'bar',\n", - " 'x': array(['2024-01-15T00:00:00.000000000', '2024-01-15T01:00:00.000000000',\n", - " '2024-01-15T02:00:00.000000000', '2024-01-15T03:00:00.000000000',\n", - " '2024-01-15T04:00:00.000000000', '2024-01-15T05:00:00.000000000',\n", - " '2024-01-15T06:00:00.000000000', '2024-01-15T07:00:00.000000000',\n", - " '2024-01-15T08:00:00.000000000', '2024-01-15T09:00:00.000000000',\n", - " '2024-01-15T10:00:00.000000000', '2024-01-15T11:00:00.000000000',\n", - " '2024-01-15T12:00:00.000000000', '2024-01-15T13:00:00.000000000',\n", - " '2024-01-15T14:00:00.000000000', '2024-01-15T15:00:00.000000000',\n", - " '2024-01-15T16:00:00.000000000', '2024-01-15T17:00:00.000000000',\n", - " '2024-01-15T18:00:00.000000000', '2024-01-15T19:00:00.000000000',\n", - " '2024-01-15T20:00:00.000000000', '2024-01-15T21:00:00.000000000',\n", - " '2024-01-15T22:00:00.000000000', '2024-01-15T23:00:00.000000000',\n", - " '2024-01-16T00:00:00.000000000', '2024-01-16T01:00:00.000000000',\n", - " '2024-01-16T02:00:00.000000000', '2024-01-16T03:00:00.000000000',\n", - " '2024-01-16T04:00:00.000000000', '2024-01-16T05:00:00.000000000',\n", - " '2024-01-16T06:00:00.000000000', '2024-01-16T07:00:00.000000000',\n", - " '2024-01-16T08:00:00.000000000', '2024-01-16T09:00:00.000000000',\n", - " '2024-01-16T10:00:00.000000000', '2024-01-16T11:00:00.000000000',\n", - " '2024-01-16T12:00:00.000000000', '2024-01-16T13:00:00.000000000',\n", - " '2024-01-16T14:00:00.000000000', '2024-01-16T15:00:00.000000000',\n", - " '2024-01-16T16:00:00.000000000', '2024-01-16T17:00:00.000000000',\n", - " '2024-01-16T18:00:00.000000000', '2024-01-16T19:00:00.000000000',\n", - " '2024-01-16T20:00:00.000000000', '2024-01-16T21:00:00.000000000',\n", - " '2024-01-16T22:00:00.000000000', '2024-01-16T23:00:00.000000000',\n", - " '2024-01-17T00:00:00.000000000', '2024-01-17T01:00:00.000000000',\n", - " '2024-01-17T02:00:00.000000000', '2024-01-17T03:00:00.000000000',\n", - " '2024-01-17T04:00:00.000000000', '2024-01-17T05:00:00.000000000',\n", - " '2024-01-17T06:00:00.000000000', '2024-01-17T07:00:00.000000000',\n", - " '2024-01-17T08:00:00.000000000', '2024-01-17T09:00:00.000000000',\n", - " '2024-01-17T10:00:00.000000000', '2024-01-17T11:00:00.000000000',\n", - " '2024-01-17T12:00:00.000000000', '2024-01-17T13:00:00.000000000',\n", - " '2024-01-17T14:00:00.000000000', '2024-01-17T15:00:00.000000000',\n", - " '2024-01-17T16:00:00.000000000', '2024-01-17T17:00:00.000000000',\n", - " '2024-01-17T18:00:00.000000000', '2024-01-17T19:00:00.000000000',\n", - " '2024-01-17T20:00:00.000000000', '2024-01-17T21:00:00.000000000',\n", - " '2024-01-17T22:00:00.000000000', '2024-01-17T23:00:00.000000000',\n", - " '2024-01-18T00:00:00.000000000', '2024-01-18T01:00:00.000000000',\n", - " '2024-01-18T02:00:00.000000000', '2024-01-18T03:00:00.000000000',\n", - " '2024-01-18T04:00:00.000000000', '2024-01-18T05:00:00.000000000',\n", - " '2024-01-18T06:00:00.000000000', '2024-01-18T07:00:00.000000000',\n", - " '2024-01-18T08:00:00.000000000', '2024-01-18T09:00:00.000000000',\n", - " '2024-01-18T10:00:00.000000000', '2024-01-18T11:00:00.000000000',\n", - " '2024-01-18T12:00:00.000000000', '2024-01-18T13:00:00.000000000',\n", - " '2024-01-18T14:00:00.000000000', '2024-01-18T15:00:00.000000000',\n", - " '2024-01-18T16:00:00.000000000', '2024-01-18T17:00:00.000000000',\n", - " '2024-01-18T18:00:00.000000000', '2024-01-18T19:00:00.000000000',\n", - " '2024-01-18T20:00:00.000000000', '2024-01-18T21:00:00.000000000',\n", - " '2024-01-18T22:00:00.000000000', '2024-01-18T23:00:00.000000000',\n", - " '2024-01-19T00:00:00.000000000', '2024-01-19T01:00:00.000000000',\n", - " '2024-01-19T02:00:00.000000000', '2024-01-19T03:00:00.000000000',\n", - " '2024-01-19T04:00:00.000000000', '2024-01-19T05:00:00.000000000',\n", - " '2024-01-19T06:00:00.000000000', '2024-01-19T07:00:00.000000000',\n", - " '2024-01-19T08:00:00.000000000', '2024-01-19T09:00:00.000000000',\n", - " '2024-01-19T10:00:00.000000000', '2024-01-19T11:00:00.000000000',\n", - " '2024-01-19T12:00:00.000000000', '2024-01-19T13:00:00.000000000',\n", - " '2024-01-19T14:00:00.000000000', '2024-01-19T15:00:00.000000000',\n", - " '2024-01-19T16:00:00.000000000', '2024-01-19T17:00:00.000000000',\n", - " '2024-01-19T18:00:00.000000000', '2024-01-19T19:00:00.000000000',\n", - " '2024-01-19T20:00:00.000000000', '2024-01-19T21:00:00.000000000',\n", - " '2024-01-19T22:00:00.000000000', '2024-01-19T23:00:00.000000000',\n", - " '2024-01-20T00:00:00.000000000', '2024-01-20T01:00:00.000000000',\n", - " '2024-01-20T02:00:00.000000000', '2024-01-20T03:00:00.000000000',\n", - " '2024-01-20T04:00:00.000000000', '2024-01-20T05:00:00.000000000',\n", - " '2024-01-20T06:00:00.000000000', '2024-01-20T07:00:00.000000000',\n", - " '2024-01-20T08:00:00.000000000', '2024-01-20T09:00:00.000000000',\n", - " '2024-01-20T10:00:00.000000000', '2024-01-20T11:00:00.000000000',\n", - " '2024-01-20T12:00:00.000000000', '2024-01-20T13:00:00.000000000',\n", - " '2024-01-20T14:00:00.000000000', '2024-01-20T15:00:00.000000000',\n", - " '2024-01-20T16:00:00.000000000', '2024-01-20T17:00:00.000000000',\n", - " '2024-01-20T18:00:00.000000000', '2024-01-20T19:00:00.000000000',\n", - " '2024-01-20T20:00:00.000000000', '2024-01-20T21:00:00.000000000',\n", - " '2024-01-20T22:00:00.000000000', '2024-01-20T23:00:00.000000000',\n", - " '2024-01-21T00:00:00.000000000', '2024-01-21T01:00:00.000000000',\n", - " '2024-01-21T02:00:00.000000000', '2024-01-21T03:00:00.000000000',\n", - " '2024-01-21T04:00:00.000000000', '2024-01-21T05:00:00.000000000',\n", - " '2024-01-21T06:00:00.000000000', '2024-01-21T07:00:00.000000000',\n", - " '2024-01-21T08:00:00.000000000', '2024-01-21T09:00:00.000000000',\n", - " '2024-01-21T10:00:00.000000000', '2024-01-21T11:00:00.000000000',\n", - " '2024-01-21T12:00:00.000000000', '2024-01-21T13:00:00.000000000',\n", - " '2024-01-21T14:00:00.000000000', '2024-01-21T15:00:00.000000000',\n", - " '2024-01-21T16:00:00.000000000', '2024-01-21T17:00:00.000000000',\n", - " '2024-01-21T18:00:00.000000000', '2024-01-21T19:00:00.000000000',\n", - " '2024-01-21T20:00:00.000000000', '2024-01-21T21:00:00.000000000',\n", - " '2024-01-21T22:00:00.000000000', '2024-01-21T23:00:00.000000000',\n", - " '2024-01-22T00:00:00.000000000'], dtype='datetime64[ns]'),\n", - " 'xaxis': 'x',\n", - " 'y': {'bdata': ('5ZuWpeU9QEDMU8WNBU89QGDXQkqFnk' ... 'AAAAA0QK7n4h/lezhAAAAAAAAA+H8='),\n", - " 'dtype': 'f8'},\n", - " 'yaxis': 'y'}],\n", - " 'layout': {'bargap': 0,\n", - " 'bargroupgap': 0,\n", - " 'barmode': 'relative',\n", - " 'legend': {'title': {'text': 'variable'}, 'tracegroupgap': 0},\n", - " 'template': '...',\n", - " 'title': {'text': 'Heat (flow_rate)'},\n", - " 'xaxis': {'anchor': 'y', 'domain': [0.0, 1.0], 'title': {'text': 'time'}},\n", - " 'yaxis': {'anchor': 'x', 'domain': [0.0, 1.0], 'title': {'text': 'value'}}}\n", - "}))" - ], - "text/html": [ - "
\n", - "
" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 39 + ] }, { "cell_type": "markdown", - "id": "78", + "id": "68", "metadata": {}, "source": [ "## 10. Exporting Results\n", @@ -7527,13 +759,10 @@ }, { "cell_type": "code", - "id": "79", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.710193Z", - "start_time": "2025-12-13T14:13:18.681521Z" - } - }, + "execution_count": null, + "id": "69", + "metadata": {}, + "outputs": [], "source": [ "# Get plot result\n", "result = simple.statistics.plot.balance('Heat')\n", @@ -7541,156 +770,37 @@ "print('PlotResult contains:')\n", "print(f' data: {type(result.data).__name__} with vars {list(result.data.data_vars)}')\n", "print(f' figure: {type(result.figure).__name__}')" - ], - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "PlotResult contains:\n", - " data: Dataset with vars ['Boiler(Heat)', 'ThermalStorage(Discharge)', 'ThermalStorage(Charge)', 'Office(Heat)']\n", - " figure: Figure\n" - ] - } - ], - "execution_count": 40 + ] }, { "cell_type": "code", - "id": "80", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.736577Z", - "start_time": "2025-12-13T14:13:18.723621Z" - } - }, + "execution_count": null, + "id": "70", + "metadata": {}, + "outputs": [], "source": [ "# Export data to pandas DataFrame\n", "df = result.data.to_dataframe()\n", "df.head()" - ], - "outputs": [ - { - "data": { - "text/plain": [ - " Boiler(Heat) ThermalStorage(Discharge) \\\n", - "time \n", - "2024-01-15 00:00:00 -32.483571 -0.000000e+00 \n", - "2024-01-15 01:00:00 -29.308678 5.275242e-13 \n", - "2024-01-15 02:00:00 -33.238443 -7.086767e-13 \n", - "2024-01-15 03:00:00 -101.411593 -3.516828e-13 \n", - "2024-01-15 04:00:00 -128.829233 -5.613288e-13 \n", - "\n", - " ThermalStorage(Charge) Office(Heat) \n", - "time \n", - "2024-01-15 00:00:00 0.000000e+00 32.483571 \n", - "2024-01-15 01:00:00 -3.747575e-13 29.308678 \n", - "2024-01-15 02:00:00 8.792069e-13 33.238443 \n", - "2024-01-15 03:00:00 6.379644e+01 37.615149 \n", - "2024-01-15 04:00:00 1.000000e+02 28.829233 " - ], - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Boiler(Heat)ThermalStorage(Discharge)ThermalStorage(Charge)Office(Heat)
time
2024-01-15 00:00:00-32.483571-0.000000e+000.000000e+0032.483571
2024-01-15 01:00:00-29.3086785.275242e-13-3.747575e-1329.308678
2024-01-15 02:00:00-33.238443-7.086767e-138.792069e-1333.238443
2024-01-15 03:00:00-101.411593-3.516828e-136.379644e+0137.615149
2024-01-15 04:00:00-128.829233-5.613288e-131.000000e+0228.829233
\n", - "
" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "execution_count": 41 + ] }, { "cell_type": "code", - "id": "81", - "metadata": { - "ExecuteTime": { - "end_time": "2025-12-13T14:13:18.774445Z", - "start_time": "2025-12-13T14:13:18.771181Z" - } - }, + "execution_count": null, + "id": "71", + "metadata": {}, + "outputs": [], "source": [ "# Export figure to HTML (interactive)\n", "# result.figure.write_html('balance_plot.html')\n", "\n", "# Export figure to image\n", "# result.figure.write_image('balance_plot.png', scale=2)" - ], - "outputs": [], - "execution_count": 42 + ] }, { "cell_type": "markdown", - "id": "85", + "id": "72", "metadata": {}, "source": [ "## Summary\n", diff --git a/docs/notebooks/10-transmission.ipynb b/docs/notebooks/10-transmission.ipynb index bdfc5b956..85d2c53d8 100644 --- a/docs/notebooks/10-transmission.ipynb +++ b/docs/notebooks/10-transmission.ipynb @@ -62,7 +62,7 @@ "|-----------|-------|-------------|\n", "| Relative losses | 5% | Heat loss proportional to flow (pipe heat loss) |\n", "| Capacity | 200 kW | Maximum transmission rate |\n", - "| Bidirectional | Yes | Heat can flow A\u2192B or B\u2192A |" + "| Bidirectional | Yes | Heat can flow A→B or B→A |" ] }, { @@ -135,7 +135,52 @@ "id": "8", "metadata": {}, "outputs": [], - "source": "fs_unidirectional = fx.FlowSystem(timesteps)\nfs_unidirectional.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_unidirectional.add_elements(\n # === Buses (one per site) ===\n fx.Bus('Heat_A', carrier='heat'), # Site A heat network\n fx.Bus('Heat_B', carrier='heat'), # Site B heat network\n fx.Bus('Gas', carrier='gas'), # Gas supply network\n fx.Bus('Electricity', carrier='electricity'), # Electricity grid\n # === Effect ===\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.25)]),\n # === Site A: Large gas boiler (cheap) ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}], # 92% efficiency\n ),\n # === Site B: Small electric boiler (expensive but flexible) ===\n fx.LinearConverter(\n 'ElecBoiler_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=250)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=250)],\n conversion_factors=[{'Elec': 1, 'Heat': 0.99}], # 99% efficiency\n ),\n # === Transmission: A \u2192 B (unidirectional) ===\n fx.Transmission(\n 'Pipe_A_to_B',\n in1=fx.Flow('from_A', bus='Heat_A', size=200), # Input from Site A\n out1=fx.Flow('to_B', bus='Heat_B', size=200), # Output to Site B\n relative_losses=0.05, # 5% heat loss in pipe\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_unidirectional.optimize(fx.solvers.HighsSolver());" + "source": [ + "fs_unidirectional = fx.FlowSystem(timesteps)\n", + "fs_unidirectional.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('electricity', '#f1c40f', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "fs_unidirectional.add_elements(\n", + " # === Buses (one per site) ===\n", + " fx.Bus('Heat_A', carrier='heat'), # Site A heat network\n", + " fx.Bus('Heat_B', carrier='heat'), # Site B heat network\n", + " fx.Bus('Gas', carrier='gas'), # Gas supply network\n", + " fx.Bus('Electricity', carrier='electricity'), # Electricity grid\n", + " # === Effect ===\n", + " fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n", + " # === External supplies ===\n", + " fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n", + " fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=0.25)]),\n", + " # === Site A: Large gas boiler (cheap) ===\n", + " fx.LinearConverter(\n", + " 'GasBoiler_A',\n", + " inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n", + " outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n", + " conversion_factors=[{'Gas': 1, 'Heat': 0.92}], # 92% efficiency\n", + " ),\n", + " # === Site B: Small electric boiler (expensive but flexible) ===\n", + " fx.LinearConverter(\n", + " 'ElecBoiler_B',\n", + " inputs=[fx.Flow('Elec', bus='Electricity', size=250)],\n", + " outputs=[fx.Flow('Heat', bus='Heat_B', size=250)],\n", + " conversion_factors=[{'Elec': 1, 'Heat': 0.99}], # 99% efficiency\n", + " ),\n", + " # === Transmission: A → B (unidirectional) ===\n", + " fx.Transmission(\n", + " 'Pipe_A_to_B',\n", + " in1=fx.Flow('from_A', bus='Heat_A', size=200), # Input from Site A\n", + " out1=fx.Flow('to_B', bus='Heat_B', size=200), # Output to Site B\n", + " relative_losses=0.05, # 5% heat loss in pipe\n", + " ),\n", + " # === Demands ===\n", + " fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n", + " fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n", + ")\n", + "\n", + "fs_unidirectional.optimize(fx.solvers.HighsSolver());" + ] }, { "cell_type": "code", @@ -145,7 +190,7 @@ "outputs": [], "source": [ "# View results\n", - "print(f'Total cost: {fs_unidirectional.solution[\"costs\"].item():.2f} \u20ac')" + "print(f'Total cost: {fs_unidirectional.solution[\"costs\"].item():.2f} €')" ] }, { @@ -217,8 +262,8 @@ "# Electricity price varies: cheap at night, expensive during day\n", "elec_price = np.where(\n", " (hour_of_day >= 22) | (hour_of_day <= 6),\n", - " 0.08, # Night: 0.08 \u20ac/kWh\n", - " 0.25, # Day: 0.25 \u20ac/kWh\n", + " 0.08, # Night: 0.08 €/kWh\n", + " 0.25, # Day: 0.25 €/kWh\n", ")" ] }, @@ -228,7 +273,57 @@ "id": "16", "metadata": {}, "outputs": [], - "source": "fs_bidirectional = fx.FlowSystem(timesteps)\nfs_bidirectional.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_bidirectional.add_elements(\n # === Buses ===\n fx.Bus('Heat_A', carrier='heat'),\n fx.Bus('Heat_B', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n fx.Bus('Electricity', carrier='electricity'),\n # === Effect ===\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n # === Site A: Gas boiler ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n ),\n # === Site B: Heat pump (efficient with variable electricity price) ===\n fx.LinearConverter(\n 'HeatPump_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n conversion_factors=[{'Elec': 1, 'Heat': 3.5}], # COP = 3.5\n ),\n # === BIDIRECTIONAL Transmission ===\n fx.Transmission(\n 'Pipe_AB',\n # Direction 1: A \u2192 B\n in1=fx.Flow('from_A', bus='Heat_A', size=200),\n out1=fx.Flow('to_B', bus='Heat_B', size=200),\n # Direction 2: B \u2192 A\n in2=fx.Flow('from_B', bus='Heat_B', size=200),\n out2=fx.Flow('to_A', bus='Heat_A', size=200),\n relative_losses=0.05,\n prevent_simultaneous_flows_in_both_directions=True, # Can't flow both ways at once\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_bidirectional.optimize(fx.solvers.HighsSolver());" + "source": [ + "fs_bidirectional = fx.FlowSystem(timesteps)\n", + "fs_bidirectional.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('electricity', '#f1c40f', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "fs_bidirectional.add_elements(\n", + " # === Buses ===\n", + " fx.Bus('Heat_A', carrier='heat'),\n", + " fx.Bus('Heat_B', carrier='heat'),\n", + " fx.Bus('Gas', carrier='gas'),\n", + " fx.Bus('Electricity', carrier='electricity'),\n", + " # === Effect ===\n", + " fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n", + " # === External supplies ===\n", + " fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n", + " fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n", + " # === Site A: Gas boiler ===\n", + " fx.LinearConverter(\n", + " 'GasBoiler_A',\n", + " inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n", + " outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n", + " conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n", + " ),\n", + " # === Site B: Heat pump (efficient with variable electricity price) ===\n", + " fx.LinearConverter(\n", + " 'HeatPump_B',\n", + " inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n", + " outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n", + " conversion_factors=[{'Elec': 1, 'Heat': 3.5}], # COP = 3.5\n", + " ),\n", + " # === BIDIRECTIONAL Transmission ===\n", + " fx.Transmission(\n", + " 'Pipe_AB',\n", + " # Direction 1: A → B\n", + " in1=fx.Flow('from_A', bus='Heat_A', size=200),\n", + " out1=fx.Flow('to_B', bus='Heat_B', size=200),\n", + " # Direction 2: B → A\n", + " in2=fx.Flow('from_B', bus='Heat_B', size=200),\n", + " out2=fx.Flow('to_A', bus='Heat_A', size=200),\n", + " relative_losses=0.05,\n", + " prevent_simultaneous_flows_in_both_directions=True, # Can't flow both ways at once\n", + " ),\n", + " # === Demands ===\n", + " fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n", + " fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n", + ")\n", + "\n", + "fs_bidirectional.optimize(fx.solvers.HighsSolver());" + ] }, { "cell_type": "code", @@ -238,10 +333,10 @@ "outputs": [], "source": [ "# Compare costs\n", - "print(f'Unidirectional cost: {fs_unidirectional.solution[\"costs\"].item():.2f} \u20ac')\n", - "print(f'Bidirectional cost: {fs_bidirectional.solution[\"costs\"].item():.2f} \u20ac')\n", + "print(f'Unidirectional cost: {fs_unidirectional.solution[\"costs\"].item():.2f} €')\n", + "print(f'Bidirectional cost: {fs_bidirectional.solution[\"costs\"].item():.2f} €')\n", "savings = fs_unidirectional.solution['costs'].item() - fs_bidirectional.solution['costs'].item()\n", - "print(f'Savings from bidirectional: {savings:.2f} \u20ac')" + "print(f'Savings from bidirectional: {savings:.2f} €')" ] }, { @@ -262,7 +357,7 @@ "fig = px.line(\n", " x=list(flow_data['time'].values) * 2,\n", " y=np.concatenate([flow_data['A_to_B'].values, flow_data['B_to_A'].values]),\n", - " color=['A \u2192 B'] * len(flow_data['time']) + ['B \u2192 A'] * len(flow_data['time']),\n", + " color=['A → B'] * len(flow_data['time']) + ['B → A'] * len(flow_data['time']),\n", " title='Transmission Flow Direction Over Time',\n", " labels={'x': 'Time', 'y': 'Flow Rate [kW]', 'color': 'Direction'},\n", ")\n", @@ -319,7 +414,83 @@ "id": "23", "metadata": {}, "outputs": [], - "source": "# Daily amortized pipe cost (simplified)\nPIPE_COST_PER_KW = 0.05 # \u20ac/kW/day capacity cost\n\nfs_invest = fx.FlowSystem(timesteps)\nfs_invest.add_carriers(\n fx.Carrier('gas', '#3498db', 'kW'),\n fx.Carrier('electricity', '#f1c40f', 'kW'),\n fx.Carrier('heat', '#e74c3c', 'kW'),\n)\nfs_invest.add_elements(\n # === Buses ===\n fx.Bus('Heat_A', carrier='heat'),\n fx.Bus('Heat_B', carrier='heat'),\n fx.Bus('Gas', carrier='gas'),\n fx.Bus('Electricity', carrier='electricity'),\n # === Effect ===\n fx.Effect('costs', '\u20ac', 'Operating Costs', is_standard=True, is_objective=True),\n # === External supplies ===\n fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n # === Site A: Gas boiler ===\n fx.LinearConverter(\n 'GasBoiler_A',\n inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n ),\n # === Site B: Heat pump ===\n fx.LinearConverter(\n 'HeatPump_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n conversion_factors=[{'Elec': 1, 'Heat': 3.5}],\n ),\n # === Site B: Backup electric boiler ===\n fx.LinearConverter(\n 'ElecBoiler_B',\n inputs=[fx.Flow('Elec', bus='Electricity', size=200)],\n outputs=[fx.Flow('Heat', bus='Heat_B', size=200)],\n conversion_factors=[{'Elec': 1, 'Heat': 0.99}],\n ),\n # === Transmission with INVESTMENT OPTIMIZATION ===\n # Investment parameters are passed via 'size' parameter\n fx.Transmission(\n 'Pipe_AB',\n in1=fx.Flow(\n 'from_A',\n bus='Heat_A',\n size=fx.InvestParameters(\n effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7}, # Weekly cost\n minimum_size=0,\n maximum_size=300,\n ),\n ),\n out1=fx.Flow('to_B', bus='Heat_B'),\n in2=fx.Flow(\n 'from_B',\n bus='Heat_B',\n size=fx.InvestParameters(\n effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7},\n minimum_size=0,\n maximum_size=300,\n ),\n ),\n out2=fx.Flow('to_A', bus='Heat_A'),\n relative_losses=0.05,\n balanced=True, # Same capacity in both directions\n prevent_simultaneous_flows_in_both_directions=True,\n ),\n # === Demands ===\n fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n)\n\nfs_invest.optimize(fx.solvers.HighsSolver());" + "source": [ + "# Daily amortized pipe cost (simplified)\n", + "PIPE_COST_PER_KW = 0.05 # €/kW/day capacity cost\n", + "\n", + "fs_invest = fx.FlowSystem(timesteps)\n", + "fs_invest.add_carriers(\n", + " fx.Carrier('gas', '#3498db', 'kW'),\n", + " fx.Carrier('electricity', '#f1c40f', 'kW'),\n", + " fx.Carrier('heat', '#e74c3c', 'kW'),\n", + ")\n", + "fs_invest.add_elements(\n", + " # === Buses ===\n", + " fx.Bus('Heat_A', carrier='heat'),\n", + " fx.Bus('Heat_B', carrier='heat'),\n", + " fx.Bus('Gas', carrier='gas'),\n", + " fx.Bus('Electricity', carrier='electricity'),\n", + " # === Effect ===\n", + " fx.Effect('costs', '€', 'Operating Costs', is_standard=True, is_objective=True),\n", + " # === External supplies ===\n", + " fx.Source('GasSupply', outputs=[fx.Flow('Gas', bus='Gas', size=1000, effects_per_flow_hour=0.06)]),\n", + " fx.Source('ElecGrid', outputs=[fx.Flow('Elec', bus='Electricity', size=500, effects_per_flow_hour=elec_price)]),\n", + " # === Site A: Gas boiler ===\n", + " fx.LinearConverter(\n", + " 'GasBoiler_A',\n", + " inputs=[fx.Flow('Gas', bus='Gas', size=500)],\n", + " outputs=[fx.Flow('Heat', bus='Heat_A', size=400)],\n", + " conversion_factors=[{'Gas': 1, 'Heat': 0.92}],\n", + " ),\n", + " # === Site B: Heat pump ===\n", + " fx.LinearConverter(\n", + " 'HeatPump_B',\n", + " inputs=[fx.Flow('Elec', bus='Electricity', size=100)],\n", + " outputs=[fx.Flow('Heat', bus='Heat_B', size=350)],\n", + " conversion_factors=[{'Elec': 1, 'Heat': 3.5}],\n", + " ),\n", + " # === Site B: Backup electric boiler ===\n", + " fx.LinearConverter(\n", + " 'ElecBoiler_B',\n", + " inputs=[fx.Flow('Elec', bus='Electricity', size=200)],\n", + " outputs=[fx.Flow('Heat', bus='Heat_B', size=200)],\n", + " conversion_factors=[{'Elec': 1, 'Heat': 0.99}],\n", + " ),\n", + " # === Transmission with INVESTMENT OPTIMIZATION ===\n", + " # Investment parameters are passed via 'size' parameter\n", + " fx.Transmission(\n", + " 'Pipe_AB',\n", + " in1=fx.Flow(\n", + " 'from_A',\n", + " bus='Heat_A',\n", + " size=fx.InvestParameters(\n", + " effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7}, # Weekly cost\n", + " minimum_size=0,\n", + " maximum_size=300,\n", + " ),\n", + " ),\n", + " out1=fx.Flow('to_B', bus='Heat_B'),\n", + " in2=fx.Flow(\n", + " 'from_B',\n", + " bus='Heat_B',\n", + " size=fx.InvestParameters(\n", + " effects_of_investment_per_size={'costs': PIPE_COST_PER_KW * 7},\n", + " minimum_size=0,\n", + " maximum_size=300,\n", + " ),\n", + " ),\n", + " out2=fx.Flow('to_A', bus='Heat_A'),\n", + " relative_losses=0.05,\n", + " balanced=True, # Same capacity in both directions\n", + " prevent_simultaneous_flows_in_both_directions=True,\n", + " ),\n", + " # === Demands ===\n", + " fx.Sink('Demand_A', inputs=[fx.Flow('Heat', bus='Heat_A', size=1, fixed_relative_profile=demand_a)]),\n", + " fx.Sink('Demand_B', inputs=[fx.Flow('Heat', bus='Heat_B', size=1, fixed_relative_profile=demand_b)]),\n", + ")\n", + "\n", + "fs_invest.optimize(fx.solvers.HighsSolver());" + ] }, { "cell_type": "code", @@ -333,7 +504,7 @@ "total_cost = fs_invest.solution['costs'].item()\n", "\n", "print(f'Optimal pipe capacity: {optimal_capacity:.1f} kW')\n", - "print(f'Total cost: {total_cost:.2f} \u20ac')" + "print(f'Total cost: {total_cost:.2f} €')" ] }, { @@ -362,7 +533,59 @@ "cell_type": "markdown", "id": "27", "metadata": {}, - "source": "## Key Concepts\n\n### Transmission Component Structure\n\n```python\nfx.Transmission(\n label='pipe_name',\n # Direction 1: A \u2192 B\n in1=fx.Flow('from_A', bus='Bus_A', size=100),\n out1=fx.Flow('to_B', bus='Bus_B', size=100),\n # Direction 2: B \u2192 A (optional - omit for unidirectional)\n in2=fx.Flow('from_B', bus='Bus_B', size=100),\n out2=fx.Flow('to_A', bus='Bus_A', size=100),\n # Loss parameters\n relative_losses=0.05, # 5% proportional loss\n absolute_losses=10, # 10 kW fixed loss when active (optional)\n # Operational constraints\n prevent_simultaneous_flows_in_both_directions=True,\n balanced=True, # Same capacity both directions (needs InvestParameters)\n)\n```\n\n### Loss Types\n\n| Loss Type | Formula | Use Case |\n|-----------|---------|----------|\n| **Relative** | `out = in \u00d7 (1 - loss)` | Heat pipes, electrical lines |\n| **Absolute** | `out = in - loss` (when active) | Pump energy, standby losses |\n\n### Bidirectional vs Unidirectional\n\n| Configuration | Parameters | Use Case |\n|---------------|------------|----------|\n| **Unidirectional** | `in1`, `out1` only | One-way pipelines, conveyors |\n| **Bidirectional** | `in1`, `out1`, `in2`, `out2` | Power lines, reversible pipes |\n\n### Investment Optimization\n\nUse `InvestParameters` as the `size` parameter for capacity optimization:\n\n```python\nin1=fx.Flow(\n 'from_A', \n bus='Bus_A',\n size=fx.InvestParameters( # Pass InvestParameters as size\n effects_of_investment_per_size={'costs': cost_per_kw},\n minimum_size=0,\n maximum_size=500,\n ),\n)\n```" + "source": [ + "## Key Concepts\n", + "\n", + "### Transmission Component Structure\n", + "\n", + "```python\n", + "fx.Transmission(\n", + " label='pipe_name',\n", + " # Direction 1: A → B\n", + " in1=fx.Flow('from_A', bus='Bus_A', size=100),\n", + " out1=fx.Flow('to_B', bus='Bus_B', size=100),\n", + " # Direction 2: B → A (optional - omit for unidirectional)\n", + " in2=fx.Flow('from_B', bus='Bus_B', size=100),\n", + " out2=fx.Flow('to_A', bus='Bus_A', size=100),\n", + " # Loss parameters\n", + " relative_losses=0.05, # 5% proportional loss\n", + " absolute_losses=10, # 10 kW fixed loss when active (optional)\n", + " # Operational constraints\n", + " prevent_simultaneous_flows_in_both_directions=True,\n", + " balanced=True, # Same capacity both directions (needs InvestParameters)\n", + ")\n", + "```\n", + "\n", + "### Loss Types\n", + "\n", + "| Loss Type | Formula | Use Case |\n", + "|-----------|---------|----------|\n", + "| **Relative** | `out = in × (1 - loss)` | Heat pipes, electrical lines |\n", + "| **Absolute** | `out = in - loss` (when active) | Pump energy, standby losses |\n", + "\n", + "### Bidirectional vs Unidirectional\n", + "\n", + "| Configuration | Parameters | Use Case |\n", + "|---------------|------------|----------|\n", + "| **Unidirectional** | `in1`, `out1` only | One-way pipelines, conveyors |\n", + "| **Bidirectional** | `in1`, `out1`, `in2`, `out2` | Power lines, reversible pipes |\n", + "\n", + "### Investment Optimization\n", + "\n", + "Use `InvestParameters` as the `size` parameter for capacity optimization:\n", + "\n", + "```python\n", + "in1=fx.Flow(\n", + " 'from_A', \n", + " bus='Bus_A',\n", + " size=fx.InvestParameters( # Pass InvestParameters as size\n", + " effects_of_investment_per_size={'costs': cost_per_kw},\n", + " minimum_size=0,\n", + " maximum_size=500,\n", + " ),\n", + ")\n", + "```" + ] }, { "cell_type": "markdown", @@ -384,7 +607,23 @@ "cell_type": "markdown", "id": "29", "metadata": {}, - "source": "## Summary\n\nYou learned how to:\n\n- Create **unidirectional transmission** between two buses\n- Model **bidirectional transmission** with flow direction constraints\n- Apply **relative and absolute losses** to transmission\n- Optimize **transmission capacity** using InvestParameters\n- Analyze **multi-site energy systems** with interconnections\n\n### Next Steps\n\n- **[07-scenarios-and-periods](07-scenarios-and-periods.ipynb)**: Multi-year planning with uncertainty\n- **[08a-Aggregation](08a-aggregation.ipynb)**: Speed up large problems with time series aggregation\n- **[08b-Rolling Horizon](08b-rolling-horizon.ipynb)**: Decompose large problems into sequential segments" + "source": [ + "## Summary\n", + "\n", + "You learned how to:\n", + "\n", + "- Create **unidirectional transmission** between two buses\n", + "- Model **bidirectional transmission** with flow direction constraints\n", + "- Apply **relative and absolute losses** to transmission\n", + "- Optimize **transmission capacity** using InvestParameters\n", + "- Analyze **multi-site energy systems** with interconnections\n", + "\n", + "### Next Steps\n", + "\n", + "- **[07-scenarios-and-periods](07-scenarios-and-periods.ipynb)**: Multi-year planning with uncertainty\n", + "- **[08a-Aggregation](08a-aggregation.ipynb)**: Speed up large problems with time series aggregation\n", + "- **[08b-Rolling Horizon](08b-rolling-horizon.ipynb)**: Decompose large problems into sequential segments" + ] } ], "metadata": {